zikode-jekyll-theme 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 723cf32fdf367af6a573a79025cb4d82f2c7917a599a2af140648f33527869af
4
+ data.tar.gz: e42e3b73807521a7467664d57189f41ad25b83268a854bdbb0900a795e6c4081
5
+ SHA512:
6
+ metadata.gz: 261af848a84bc70f06c86f5b62e3d601a1d53fe8914fe4d456843f36b17262c3050ba4a8936a58e0579ff106e86d3b9c48762da2090f0d966f09c02056b2452d
7
+ data.tar.gz: 42e05d5b6b4e37da74c11127ff22a0030603e5c027233cd071894a5c034aa05282f41a67cd278a45e0b80e216455ad5e7e9dccf1e57eb5f932bccc9530e2f77f
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 Siyanda
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # zikode
2
+
3
+ Welcome to your new Jekyll theme! In this directory, you'll find the files you need to be able to package up your theme into a gem. Put your layouts in `_layouts`, your includes in `_includes`, your sass files in `_sass` and any other assets in `assets`.
4
+
5
+ To experiment with this code, add some sample content and run `bundle exec jekyll serve` – this directory is setup just like a Jekyll site!
6
+
7
+ TODO: Delete this and the text above, and describe your gem
8
+
9
+
10
+ ## Installation
11
+
12
+ Add this line to your Jekyll site's `Gemfile`:
13
+
14
+ ```ruby
15
+ gem "zikode"
16
+ ```
17
+
18
+ And add this line to your Jekyll site's `_config.yml`:
19
+
20
+ ```yaml
21
+ theme: zikode
22
+ ```
23
+
24
+ And then execute:
25
+
26
+ $ bundle
27
+
28
+ Or install it yourself as:
29
+
30
+ $ gem install zikode
31
+
32
+ ## Usage
33
+
34
+ TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
35
+
36
+ ## Contributing
37
+
38
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
39
+
40
+ ## Development
41
+
42
+ To set up your environment to develop this theme, run `bundle install`.
43
+
44
+ Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
45
+
46
+ When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
47
+ To add a custom directory to your theme-gem, please edit the regexp in `zikode.gemspec` accordingly.
48
+
49
+ ## License
50
+
51
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
52
+
@@ -0,0 +1,3 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons:
3
+ {% endcomment %}
@@ -0,0 +1,3 @@
1
+ <footer class="site-footer">
2
+
3
+ </footer>
@@ -0,0 +1,9 @@
1
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
2
+ <script>
3
+ window['ga-disable-{{ site.google_analytics }}'] = window.doNotTrack === "1" || navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1";
4
+ window.dataLayer = window.dataLayer || [];
5
+ function gtag(){window.dataLayer.push(arguments);}
6
+ gtag('js', new Date());
7
+
8
+ gtag('config', '{{ site.google_analytics }}');
9
+ </script>
@@ -0,0 +1,8 @@
1
+ <head>
2
+ <link rel="stylesheet" href="{{ '/assets/css/application.css' | relative_url }}">
3
+ {%- feed_meta -%}
4
+ {%- if jekyll.environment == 'production' and site.google_analytics -%}
5
+ {%- include google-analytics.html -%}
6
+ {%- endif -%}
7
+ {%- include custom-head.html -%}
8
+ </head>
@@ -0,0 +1,2 @@
1
+ <header>
2
+ </header>
@@ -0,0 +1,3 @@
1
+ <meta charset="utf-8">
2
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1">
@@ -0,0 +1 @@
1
+ <script src="{{ '/assets/js/main.js' | relative_url }}"></script>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+
4
+ {%- include head.html -%}
5
+
6
+ <body>
7
+
8
+ {%- include header.html -%}
9
+
10
+ <main class="wrapper">
11
+ <div class="container">
12
+ {{ content }}
13
+ </div>
14
+ </main>
15
+
16
+ {%- include footer.html -%}
17
+
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+ {%- include head.html -%}
4
+ <body>
5
+ {%- include header.html -%}
6
+ <main class="wrapper">
7
+ <div class="container">
8
+ {{ content }}
9
+ </div>
10
+ </main>
11
+ {%- include footer.html -%}
12
+ {%- include scripts.html -%}
13
+ </body>
14
+ </html>
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1 @@
1
+ body{font-size:18px;font-weight:400;height:100%;min-width:350px;text-rendering:optimizeLegibility}html{box-sizing:border-box;height:100%;width:100%}*,::before,::after{box-sizing:inherit;margin:0;padding:0}pre{font-family:monospace,monospace;font-size:1em}small{font-size:80%}textarea{overflow:auto}a{text-decoration:none;color:currentColor}h1,h2,h3{display:block;margin-bottom:.67em;margin-left:0;margin-right:0;margin-top:.2em}h1{font-size:2.8rem}h2{font-size:2.2em}h3{font-size:1.8rem}h4{font-size:1.2rem}svg{width:100%;height:100%;min-width:10px;min-height:10px;pointer-events:none}button{appearance:none;border:0;cursor:pointer;font-weight:600;line-height:1;text-decoration:none;user-select:none;vertical-align:middle;white-space:nowrap}table{table-layout:auto}footer{display:flex;justify-content:space-between;margin:auto 0 0;padding:10px;width:100%}[hidden]{display:none}.container{margin:auto;padding:30px 0}.header-menu,.icon-menu{display:flex;justify-content:space-around;padding:10px;text-align:center;width:100%}.header-menu .button{text-align:center;text-decoration:none}.shadowed{box-shadow:0 3px 9px rgba(0,0,0,.35)}.shadowed.light-inset-shd{box-shadow:inset 0 4px 10px 0 rgba(128,128,128,.2)}.shadowed.mild-inset-shd{box-shadow:inset 0 1px 0 0 rgba(187,187,187,.35)}.shadowed.mildy-shd{box-shadow:0 0 5px rgba(0,0,0,.15)}.shadowed.lightly-shd{box-shadow:0 3px 4px rgba(0,0,0,.35)}.bold{font-weight:600}.irregular{width:98%}.pull-right{float:right}.pull-left{float:left}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.absolute{position:absolute}.relative{position:relative}.level-one{z-index:1}.level-two{z-index:2}.level-three{z-index:3}.no-x-overflow{overflow-x:hidden}.no-y-overflow{overflow-y:hidden}.top-fixed{position:fixed;width:100%;top:0;z-index:1}.bottom-fixed{position:fixed;width:100%;bottom:0}.fixed{position:fixed}.fixed.top{top:0}.fixed.bottom{bottom:0}.padded{padding:1.2rem}.padded.heavily{padding:2.8rem}.padded.slightly{padding:.6rem}.padded.lightly{padding:.4rem}.hidden{display:none}.auto-marg{margin:auto}.invisibile{opacity:0}.tall{height:65vh}.no-margin{margin:0}.top-margin{margin-top:.4rem}.right-margin{margin-right:.4rem}.bottom-margin{margin-bottom:.4rem}.left-margin{margin-left:.4rem}.margin-sides{margin-left:.4rem;margin-right:.4rem}.no-padding{padding:0}.padded-sides{padding-left:1.8rem;padding-right:1.8rem}.top-padded{padding-top:1.8rem}.top-padded.lightly{padding-top:.4rem}.right-padded{padding-right:1.8rem}.bottom-padded{padding-bottom:1.8rem}.bottom-padded.lightly{padding-bottom:.4rem}.left-padded{padding-left:1.8rem}.max-height{height:max-content}.full-height{min-height:100%}.full-page{min-height:100vh}.full-width{width:100%}.half-width{width:50%}.third-width{width:33.33%}.two-third-width{width:66.66%}.quarter-width{width:25%}.mid-center{display:flex;flex-direction:column;justify-content:center}.flex{display:flex}.flex.row{flex-direction:row}.flex.column{flex-direction:column}.flex.wrapped{flex-wrap:wrap}.flex.start{align-items:flex-start}.flex.baseline{align-items:baseline}.flex.flex-end{justify-content:flex-end}.flex.flex-start{justify-content:flex-start}.flex.spaced-between{justify-content:space-between}.flex.spaced-around{justify-content:space-around}.flex.evenly-spaced{justify-content:space-evenly}.flex.just-centered{justify-content:center}.flex.center-aligned{align-items:center}.flex.grow{flex-grow:1}.clickable{cursor:pointer}.non-clickable{pointer-events:none}.capitalized{text-transform:capitalize}.upcase{text-transform:uppercase}.downcase{text-transform:lowercase}.truncate{width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gray-text{color:gray}.gray-text a{color:gray}.gray-text a:visited{color:#353740}.gray-text a:hover{color:#4facfe}.gray-text a:active,.gray-text a:focus{color:#ffa900}.blue-text{color:#24466d}.blue-text a{color:#24466d}.blue-text a:visited{color:#353740}.blue-text a:hover{color:#4facfe}.blue-text a:active,.blue-text a:focus{color:#ffa900}.white-text{color:#fff}.white-text a{color:#fff}.white-text a:visited{color:#fff}.white-text a:hover{color:#fff}.white-text a:active,.white-text a:focus{color:#fff}.bright-text{color:#007299}.bright-text a{color:#007299}.bright-text a:visited{color:#007299}.bright-text a:hover{color:#4facfe}.bright-text a:active,.bright-text a:focus{color:#ffa900}.light-text{color:#cfcfcf}.light-text a{color:#cfcfcf}.light-text a:visited{color:#b5b5b5}.light-text a:hover{color:#ffa900}.light-text a:active,.light-text a:focus{color:#f5f5f5}.dark-text{color:#353740}.dark-text a{color:#353740}.dark-text a:visited{color:#353740}.dark-text a:hover{color:#4facfe}.dark-text a:active,.dark-text a:focus{color:#ffa900}.ocean-text{color:#1b1b26}.ocean-text a{color:#1b1b26}.ocean-text a:visited{color:#1b1b26}.ocean-text a:hover{color:#4facfe}.ocean-text a:active,.ocean-text a:focus{color:#ffa900}.red-text{color:#ed3e44}.red-text a{color:#ed3e44}.red-text a:visited{color:#ed3e44}.red-text a:hover{color:#4facfe}.red-text a:active,.red-text a:focus{color:#ffa900}.center{margin:auto;text-align:center}.big-text{font-size:4.4rem}.x-large-text{font-size:2.25rem}.large-text{font-size:1.25rem}.medium-text{font-size:.8rem}.small-text{font-size:.75rem}.tiny-text{font-size:.55rem}.borderless{border:0}.square{border-radius:.25rem}.regular{border-radius:.5rem}.circle{border-radius:50%}.round{border-radius:1.25rem}.rounded{border-radius:.2rem}.dark-bg{background-color:#1b1b26}.dark-bg .toggle{cursor:pointer}.dark-bg .toggle:hover{background-color:#353740}.night-bg{background-color:#353740}.light-bg{background-color:#ddd}.shaded-bg{background-color:#eee}.cream-bg{background-color:#f5f5f5}.yellow-bg{background-color:#fee902}.green-bg{background-color:#65b73c}.blue-bg{background-color:#1565c0}.red-bg{background-color:#d8452e}.crimson-bg{background-color:crimson}.purple-bg{background-color:#632286}.white-bg{background-color:#fff}.grey-bg{background-color:#bdbdbd}.gainsboro-bg{background-color:#dcdcdc}.black-bg{background-color:#000}.basic-border{border:thin solid #dcdcdc}.alt-border{border:thin solid #bdbdbd}.mobile-only{display:none}.tablet-only{display:none}.desktop-only{display:none}@media screen and (max-width: 420px){.app-body{padding-bottom:80px}.mobile-only{display:inherit}}@media screen and (max-width: 420px){.app-body{padding-bottom:80px}.tablet-only{display:inherit}}@media screen and (max-width: 800px){.app-body{padding-bottom:80px}.tablet-only{display:inherit}}@media screen and (min-width: 800px){.app-body{margin-bottom:50px}.desktop-only{display:inherit}}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote::before,blockquote ::after,q::before,q ::after{content:""}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}*::before,* ::after{box-sizing:border-box}.hr-sectioned{margin-bottom:1.4rem}.hr-sectioned .section:not(:last-child){border-bottom:1px solid #dcdcdc}.vt-sectioned .section:not(:last-child){border-left:1px solid #dcdcdc}.grid{display:grid;margin:auto;flex-wrap:wrap}.grid-container{margin:2rem auto}.grid-item{display:flex;width:30%}.grid-item.image{background-size:cover;border:4px solid #bdbdbd;border-radius:.4rem}.grid-item.card{min-height:200px;min-width:150px;position:relative}.grid-item .full{width:100%}.grid-content{display:flex;flex-direction:column;width:100%;padding:1em;border-radius:.2em;background-color:#d0d4da}.grid-content img{margin:2% auto}.grid-content p{padding:10px;color:#000;flex:1 0 auto}.grid-content h2{text-align:center;color:#000}.alt-overlay{background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.7));cursor:pointer;left:0;bottom:0;right:0;top:0;opacity:0;position:absolute;transition:opacity 1s ease-in-out}.alt-overlay:hover{opacity:.6}.overlay{background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.7));cursor:pointer;left:0;bottom:0;right:0;top:0;position:absolute;transition:opacity 1s ease-in-out}.overlay:hover{opacity:.5}.social-links{margin:auto}@media screen and (max-width: 980px){.grid-item{width:75%}}@media screen and (max-width: 800px){.to-column{flex-direction:column}.to-column .to-full{width:100%}}@media screen and (max-width: 640px){.grid-item{width:100%}}.tabbar{border:thin solid #dcdcdc}.tabbar.grouped{margin:0}.tabbar .tab{background:#bdbdbd;cursor:pointer;padding:1.4rem .2rem;text-align:center;text-transform:uppercase;border-left:1px solid #dcdcdc;border-right:1px solid #dcdcdc}.tabbar .tab.active{background:#fff;box-shadow:0 0 5px rgba(0,0,0,.15);border-left:1px solid #dcdcdc;border-right:1px solid #dcdcdc;font-weight:bold}.grey-block{background:#efefef;box-shadow:inset 1px 3px 4px 4px rgba(187,187,187,.35);padding:4rem 2rem}.hero{display:inline-block}.grouped .button{cursor:pointer}.grouped .button.active{background-color:#fff;border:thin solid #bdbdbd;cursor:revert;color:#353740}.grouped .button:first-child{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.grouped .button:last-child{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.outline-btn{border-radius:.4rem;padding:.4rem}.outline-btn.dark-btn{border:2px solid #303044;color:#1b1b26;transition:color .3s ease}.outline-btn.dark-btn:hover{color:#fff;background-color:#1b1b26}.button{padding:.8rem 1.2rem;background-color:#2b3542;border:thin solid #1110;color:#fff}.button.thin-btn{padding:.4rem 1.2rem}.button.dark:hover,.button.dark:focus{background-color:#ffa900;border:thin solid #2b3542;color:#1b1b26}.button.dark:disabled{cursor:not-allowed;opacity:.5}.button.dark:disabled:hover{background-color:#ffa900}.button.light{background-color:#eee;border:thin solid #d5d5d5;color:#1b1b26}.button.light:hover,.button.light:focus{background-color:#d5d5d5;border:thin solid #1b1b26;color:#1b1b26}.button.light:disabled{cursor:not-allowed;opacity:.5}.button.light:disabled:hover{background-color:#ddd}.gapped{margin:2rem;gap:2rem}.gapped>div:not(:last-child){margin-right:2rem}.gapped.no-lm{margin-left:0}.gapped.no-rm{margin-right:0}.controls .filter-container{display:none}.controls .filter-container.active{display:block}.content{background:#fff;box-shadow:0 0 5px rgba(0,0,0,.15);padding:2rem}.sparkline{padding:2rem .4rem}.heading{margin:1.2rem auto;max-width:60%}.message-container{background:shade(#1565c0, 30%);border-radius:20px;margin:10px auto;min-height:100px;padding:25px;width:80%}.heading h1,.pre-text h1{color:#111;font-weight:600;font-size:28px;text-align:center;text-transform:uppercase}.heading p,.pre-text p{font-size:20px}.header{background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.7)),url("bg/main.png");background-size:cover;font-weight:400;text-align:center;width:100%;height:200px;display:table}.header h1{display:table-cell;vertical-align:middle;font-size:30pt;color:#fff;font-weight:800;text-align:center;text-transform:uppercase}.following{color:#111;font-weight:500;text-align:center;text-transform:capitalize}.following h1{font-size:48px}.tagline{color:gray;font-size:26px;font-weight:300;margin:2rem auto;width:83.33%}.tags .tag-container{margin:0 .4rem .4rem 0}.tags .tag-container .tag{border:thin solid #dcdcdc;border-radius:.2rem;font-size:14px;padding:.4rem}.tags .tag-container .tag:hover{background-color:#e9e9e9;border:thin solid #dcdcdc}.tags .tag-container .removeable-tag{border:thin solid #dcdcdc;font-size:14px;padding:.4rem}.tags .tag-container .tag-button{border:thin solid #dcdcdc;font-size:14px;padding:.4rem}.tags .tag-container .tag-button:hover{background-color:#e9e9e9;border:thin solid #dcdcdc}.stats-box{background:#fff;border:2px #dcdcdc solid;border-radius:4px;box-sizing:border-box;box-shadow:0 1px 4px rgba(0,0,0,.1);display:flex;margin:auto;width:80%}.stat{display:flex;flex-direction:column;margin:auto;padding:32px}.stat .large-text{font-size:36px}.stat .small-text{font-size:14px}.blocks{display:flex;flex-wrap:wrap;margin:auto}.block{margin:1.2rem auto;max-width:540px;padding:1.5em;text-align:left;width:30%}.block p,.block h2{color:#efefef;text-align:center}.block button{width:100%}.block.content{padding:.4rem 0 0}.block-header{border-bottom:1px solid #dcdcdc}.block-header h1{font-size:20px}.striped:nth-child(even){background-color:#dcdcdc;border-top:1px solid #bdbdbd;border-bottom:1px solid #bdbdbd}.block-content{border-radius:.2em;display:flex;flex-direction:column;padding:1em;width:100%}.block-content img{height:80px;margin:2% auto}.block-content p{color:#000;flex:1 0 auto;padding:10px}.block-content h2{color:#000;text-align:center}.dropzone{background-color:#f5f5f5;text-align:center}.dropzone:hover{background-color:#fafafa;color:#767676}.translucent{background:rgba(0,0,0,.2);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.frosted{background:rgba(255,255,255,.6);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}@media screen and (min-width: 700px){.stats-box{width:85%;flex-direction:row}.stat{width:33%}.stat:nth-child(2){border-left:2px solid #dcdcdc;border-right:2px solid #dcdcdc;border-top:0;border-bottom:0}.block{width:30%}}@media screen and (max-width: 960px){.block{width:45%}}@media screen and (max-width: 540px){.stats-box{width:95%;flex-direction:column}.heading{max-width:90%}.stat{width:100%}.stat:nth-child(2){border-top:2px solid #dcdcdc;border-left:0;border-right:0;border-bottom:2px solid #dcdcdc}.block{width:90%}.gapped{margin:.8rem}}@media screen and (max-width: 650px){.tabbar .tab{padding:1.2rem .2rem}.block{width:80%}}.log-in,.sign-up{margin:4rem .4rem}.log-in h1,.log-in h2,.sign-up h1,.sign-up h2{text-align:center}.devise{width:90%;margin:auto;max-width:650px}.devise .mainbox{margin-left:auto;margin-right:auto}.devise .email,.devise .submit,.devise .btn,.devise .password{width:100%}.devise .btn{background:#4facfe;border:0;border-radius:3px;color:#fff;cursor:pointer;padding:10px}.devise .links{font-size:95%;margin:2rem 0 0}.devise a{color:#268bd2}.devise h2{font-weight:600;text-align:center}.devise div,.devise .boolean{margin:.2rem}.devise input{background-image:none;color:inherit;margin:0;outline:0;padding:0;transition:background-color .3s}.alert{animation:fadeinout 8s linear forwards;background-color:#757575;border-radius:2px;bottom:40px;color:#fff;min-width:250px;padding:16px;position:absolute;text-align:center;right:10px;z-index:1}.form{border-radius:.4rem;padding:1.8rem 2rem}.form .form-actions{padding-top:1.8rem}.form h1{font-weight:700}.form h2{font-weight:600}.form-control{border:thin solid #bdbdbd}.form-label{height:25px}.form-textarea{background-color:#0202020d}.lg-form-textarea{background-color:#0202020d;min-height:350px}.lines-bg{background-image:url("svg/lines_light.svg");background-size:cover;background-repeat:no-repeat;background-position:center;height:100%}.main-bg{background-image:url("svg/main.svg");background-size:cover;background-repeat:no-repeat;background-position:center;height:100%}.thin-bg{background-image:url("svg/thin.svg");background-size:cover;background-repeat:no-repeat;background-position:center;height:100%}@keyframes fadeinout{0%,100%{opacity:0;visibility:hidden}50%{opacity:1;visibility:visible}}.profile-area,.profile-post-area{padding:3rem;text-align:center;margin:auto}.profile-area .content,.profile-post-area .content{max-width:450px;margin:0 auto}.profile-area .title,.profile-post-area .title{text-align:center;margin-top:30px;font-weight:700}.profile-area .avatar,.profile-post-area .avatar{height:150px;width:150px;background:#bdbdbd;border-radius:50%;border:4px solid #fff;z-index:1}.profile-area h3,.profile-post-area h3{font-size:2em;font-weight:500;margin-bottom:30px;line-height:1.4em}.avatar{border:.6rem #dcdcdc solid;border-radius:50%;min-width:150px;width:10%}.profile-info-area{text-align:left;padding:40px;border:thin solid gray;margin:20px}.social-description{display:inline-block;max-width:150px;width:145px;text-align:center;margin:15px 0 0}.social-description h2{font-size:2.5em;margin:0 0 15px}.social-description h4{font-size:1.8em;margin:0 0 15px}.icon .badge{background-color:rgba(0,0,0,0);position:absolute;top:0;right:0;padding:.4rem;border-radius:50%}.icon .badge.active{background-color:crimson;transition:background-color .3s}.spaced{margin:auto 1.1rem}.dropdown{width:100px}.dropdown .menu{cursor:pointer}.dropdown .icon svg{width:50px}.dropdown svg,.dropdown img{display:block;width:auto;height:60px;margin:0 auto;padding:.2rem}.nav-avatar{cursor:pointer;display:block;margin:0 .1rem 0 .8rem}.nav-avatar img{min-width:40px;height:40px;border-radius:10%;background-color:#bdbdbd}.divider{border-top:1px solid #dcdcdc}.user-menu-wrap{position:relative}.v-menu .menu-item{margin:4px 0}.v-menu .menu-item.active{background-color:#fff;box-shadow:inset 1px 1px 1px 2px rgba(128,128,128,.2);border:thin solid #bdbdbd;color:#353740}.v-menu .menu-item:hover{background-color:#bdbdbd}.menu-container{opacity:0;visibility:hidden;display:none}.menu-container.active{display:block;opacity:1;visibility:visible}.user-menu{background-color:#fff;border:thin solid #bbb;border-radius:4px;margin-top:10px;position:absolute;right:5px;width:140px;text-align:center;z-index:10}.user-menu .user-menu-link{border-top:thin solid #dcdcdc;color:#1b1b26;padding:.8rem;transition:background-color .1s ease-in}.user-menu .user-menu-link:hover{background-color:#ffa900}.user-menu::before,.user-menu::after{border:8px solid transparent;border-bottom-color:#bbb;content:"";display:inline-block;left:95px;position:absolute;top:-16px}.cards{display:flex;justify-content:center}.card{background:#fff;box-shadow:0 0 5px rgba(0,0,0,.15);display:flex;flex-wrap:wrap;margin:.4rem 1.2rem;max-width:361px}.card h2{color:#353740;font-weight:700;font-size:25px;text-align:center}.card p{color:#333;margin:1.5rem 0;font-size:1.1em}.card .cta{align-self:flex-end;text-align:center;text-transform:capitalize}.card-image{min-height:160px;min-width:280px}.card-image img{border-bottom:3px solid #ffa900;width:100%;background-size:cover;object-fit:cover}.card-image img:hover{opacity:.9}.card-header{border-bottom:1px solid #bdbdbd}.card-header a{color:#353740}.card-content{padding:1.5rem;display:flex;flex-wrap:wrap}.card-content>*{flex:1 1 100%}.preview{width:100%;max-width:800px}.preview svg{height:110px;min-height:100%;padding:10px;max-width:50%;margin:auto}.action-bar{border-bottom:thin solid #dcdcdc}.action-bar a{align-items:center;border:2px solid #1b1b26;border-radius:.4rem;color:#1b1b26;cursor:pointer;display:flex;margin:auto .4rem;padding:.2rem .4rem}.action-bar a:hover{background-color:#1b1b26;color:#fff}.range-container{margin:2rem}.range-slider{width:100%}.range-output{font-size:4rem}#rangevalue{text-align:center;font-size:18px;display:block;margin:auto;padding:10px 0;width:100%}input[type=range]{width:100%;height:10px;background-color:#dcdcdc;border:thin solid #bdbdbd;border-radius:10px;margin:auto;transition:color .3s ease;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:40px;height:40px;background-color:#fff;border-radius:50%;box-shadow:0 0 3px #bdbdbd;transition:color .5s ease}input[type=range]::-webkit-slider-thumb::before{display:block;position:absolute;font-style:normal;font-weight:400;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#d6d6d6;font-size:18px;top:16px;background:0 0;left:5px;content:"❮"}input[type=range]::-webkit-slider-thumb::after{display:block;position:absolute;font-style:normal;font-weight:400;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#d6d6d6;font-size:18px;top:16px;background:0 0;left:5px;content:"❮"}input[type=range]::-webkit-slider-thumb:active{box-shadow:0 0 1px #bdbdbd}.post-container{height:100%;padding:1.2rem}.post-header{border-bottom:thin solid #dcdcdc}.post-header h1{font-size:26px}.post-body{padding:1.2rem 0}.post-footer{border-top:thin solid #dcdcdc;padding:0 1.5rem}.post-content{flex:1;padding:0 1.5rem}.post-content blockquote{font-weight:500;font-size:20px}.post-content blockquote::before,.post-content blockquote::after{content:"";display:block;width:30%;height:3px;background:#bdbdbd;margin:40px auto}.post-content ul{list-style-type:initial;margin:0 2rem}.post-content ol{list-style-type:lower-alpha}.posts{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline}.posts .block{margin:1.2rem;border-radius:4px 4px 0 0}.post.content{padding:1.4rem 0 0}.post .post-date{color:gray;font-size:12px;margin:auto .2rem}.post .meta{background:#f5f5f5;padding:.2rem 1.2rem}.post .meta svg{margin:0 .4rem}.blog-card{width:30%}.post-title{font-weight:600;margin:.4rem 1.8rem}.post-title a{color:#1b1b26}.post-title a:hover{color:#1565c0}.adblock{border:thin solid #bdbdbd;padding:4px}.post-meta-container{margin:auto;padding:2rem;text-align:center;background:#dcdcdc}.block-meta{border-top:thin solid #dcdcdc;display:flex;padding:.8rem;justify-content:space-around}.block-meta .meta{margin:0 .2rem;white-space:nowrap;display:flex}.pagination{background-color:#fff;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.35)}.pagination .active,.pagination .current{background-color:#2b3542;color:#fff;float:left;padding:8px 16px}.pagination .disabled{background-color:#dcdcdc;color:gray;cursor:not-allowed;padding:8px 16px}.pagination .gap{padding:8px 4px}.pagination a{color:#353740;float:left;padding:8px 16px}.pagination a:hover{background-color:#dcdcdc}.pagination span{color:#030303;float:left;border:thin solid #dcdcdc}.pagination span:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.pagination span:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.link-underline.read-more:hover::after{height:130%}.link-underline.read-more::after{content:"";display:block;position:absolute;bottom:-5px;width:120%;height:4px;background:#ffa900;left:-5px;transition:height .2s;z-index:-1}.sub-section.sm-icon{margin:auto .2rem}.sub-section.sm-icon svg{width:20px;height:20px}.sub-section .sub-heading{font-size:16px;margin:0 4px}.votes .vote{color:#353740}.grouped .icon,.grouped p{margin:0 5px}.author img{border:8px solid #fff;border-radius:50%;width:100px}.author h4{text-transform:uppercase}.author .bio{width:100%;padding:4rem}.comments-title,.comment-reply-title{font-size:1.75em;font-weight:700;color:#000}.comment-section{margin:2rem}.comments-title-container{border-bottom:1px solid #bbb}.comment-respond{margin:2rem 0;padding:1.5%;background:#fff;border-top:1px solid #bbb}.comments .comment{margin-top:40px;position:relative}.comments .commentlist>li:first-child{margin-top:0}.comment-inner{margin-left:90px;padding:2%;background:#efefef;position:relative;border-radius:3px}.comment-inner::after{content:"";display:block;border:12px solid transparent;border-right-color:#efefef;position:absolute;top:15px;left:0;margin-left:-24px}.comment-avatar{float:left;width:60px;height:60px;background:#bdbdbd;border-radius:15%}.comment-header p,.comment-header a{font-size:.85em}.comment-header cite{color:#2b3542;display:block;font-size:1em;font-weight:700;margin-bottom:8px}.comment-header cite a{color:#2b3542}.comment-header cite a:hover{color:#00f2fe}.comment-content{font-size:.9em}.comment-content h1,.comment-content h2,.comment-content h3,.comment-content h4,.comment-content h5,.comment-content h6{margin:50px 0 20px;font-weight:400;font-size:1.2em}.comment-content a :hover{text-decoration:underline}.comment-content li{margin-top:.5em;line-height:170%}.comment-content blockquote,.comment-content p,.comment-content li{padding:10px;line-height:150%;margin-top:1em;word-wrap:break-word}.comment-actions{position:absolute;right:20px;top:22px}.comment-actions .fa{color:#757575;font-size:20px}@media screen and (max-width: 600px){.comment-inner{margin-left:80px}.comment .avatar{width:40px;height:40px}}@media screen and (max-width: 480px){.comment-inner{margin:0;padding:5px}.comment-inner::after{border-bottom-color:#efefef;border-right-color:transparent;margin-left:10px;top:-22px}.comment-section{margin:.2rem}.comment-avatar{float:none;margin:8px 0}}.navigation{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);font-size:larger;text-align:center;width:100%}.navigation ul{list-style:none;margin:0;padding-left:0}.navigation ul li{display:block;float:left;font-size:18px;position:relative;text-decoration:none;transition-duration:.5s}.navigation ul li ul{display:none;left:0;min-width:5rem;opacity:0;position:absolute;transition:color .5s ease;visibility:hidden;z-index:1}.navlist{align-content:center;align-items:center;flex-flow:row wrap}.navlist .link{background-color:#1b1b26;border-bottom:2px solid #1110}.navlist .link.active{background-color:#262635;border-bottom:2px solid #ffa900}.navlist.spaced-between{justify-content:space-between}.navlist.center{justify-content:center}.navlist a:focus{outline:none}.logo{padding:.4rem}.logo img{width:150px;height:150px}.logo svg{height:50px}.sidebar-container li{max-width:175px;min-width:165px}.sidebar-container .nav-item{padding:1.2rem 1.2rem 1.2rem 2.8rem}.sidebar-container .nav-item.active{background:#353740;border-left:2px solid #ffa900;box-shadow:inset 1px 4px 7px 5px rgba(27,27,38,.2);color:#fff}.sidebar-container .nav-item:hover{background:#353740;border-left:2px solid gray}.sidebar-container.shared{width:0}.sidebar-container.full{width:180px}.sidebar-items{height:100vh;margin-top:45px}.sidebar-items .icon{margin:.12rem 1.2rem;position:fixed}.sidebar-items svg{margin:1.1rem -2px}.nav-item{display:inline-block;height:inherit;line-height:inherit;padding:.8rem 1.2rem;text-transform:uppercase;transition:color 150ms ease}.nav-item:hover{color:#e6e6e6}.nav-item.active{background:#1b1b26;color:#fff}.nav-item:focus{outline:1px solid #1b1b26}.nav-img{border-radius:.8rem;margin:.4rem .4rem 0}.left-border{border-left:2px solid #646464}.left-border:hover{border-left:2px solid #4facfe}.left-border.active{border-left:2px solid #00f2fe}.bottom-border:hover{border-bottom:2px solid #9090b0}.bottom-border.active{border-bottom:2px solid #00f2fe}.secondary-nav{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.1);padding:.8rem}.outline{border:thin solid;border-radius:4px;padding:.4rem .8rem;transition-property:background-color,color;transition-duration:.2s;transition-timing-function:ease-in-out}.outline:hover{background:#ffa900}.noline{border:thin gray;border-radius:4px;padding:.4rem .8rem;transition-property:background-color,color;transition-duration:.2s;transition-timing-function:ease-in-out}.noline:hover{background:#dcdcdc;color:#171717}.header-links{margin:0 1.2rem;padding:4px}.sidebar-logo{margin:auto}.sidebar-logo svg,.sidebar-logo img{width:160px;max-width:160px;padding-left:.4rem}.nav-logo{width:120px}.nav-logo.long{width:280px}.icon.insta{margin:2px 5px}.icon.insta svg{fill:#e4405f;width:25px;height:25px}.icon.twitter{margin:2px 5px}.icon.twitter svg{fill:#1da1f2;width:25px;height:25px}.icon.red-fill svg{fill:crimson}.icon.light-fill svg{fill:#fff}.icon.light-stroke svg{stroke:#fff}.icon.gold-fill svg{fill:#daa520}.icon.gray-fill svg{fill:gray}.icon.dark-fill svg{fill:#1b1b26}.icon.dark-stroke svg{stroke:#1b1b26}.icon.gray-stroke svg{stroke:gray}.icon.blue-fill{color:#1565c0}.icon.blue-fill svg{fill:#1565c0}.icon.ocean-fill svg{fill:#1b1b26}.icon.micro-svg svg{width:4px;height:4px}.icon.tiny-svg svg{width:12px;height:12px}.icon.small-svg svg{width:15px;height:15px}.icon.mdm-svg svg{width:20px;height:20px}.icon.standard-svg svg{width:30px;height:30px}.icon.medium-svg svg{width:40px;height:40px}.icon.long-svg svg{width:100%;max-width:200px;height:80px}.icon.large-svg svg{width:55px;height:55px}.icon.larger-svg svg{width:75px;height:75px}.icon.huge-svg svg{width:100px;height:100px}.float-icon.search svg{top:5px}.float-icon svg{position:absolute;top:10px;left:5px;width:15px;height:20px}.search-container{padding:.5rem}.search-wrapper{position:relative;border:thin solid #bdbdbd;border-radius:.2rem}.search-wrapper.dark-bg{border:thin solid #646464}.search-wrapper.dark-bg input{background-color:#060608}.search-wrapper.dark-bg ::placeholder{color:#bdbdbd;opacity:1}.search-wrapper .search-input{margin:0;padding:.2em .2em .2em 1.5em;font-size:18px}.search-wrapper form{height:30px}.search-wrapper input{border:0}.bar-input{width:80%;margin:auto}.bar-input input{border-radius:2rem}.breadcrumbs-container{margin:auto 1.1rem}.breadcrumbs-container .current{color:gray}.breadcrumbs{list-style:none;text-transform:lowercase}.breadcrumbs li{display:inline;font-size:18px}.breadcrumbs li+li::before{color:#000;content:"/ ";padding:8px}.breadcrumbs a{color:#005a84;font-weight:bold;text-decoration:none}.breadcrumbs a:hover{color:#4facfe}.mob-nav-item{padding-top:.4rem;padding-bottom:calc(.8rem + env(safe-area-inset-bottom));width:100%}@media screen and (max-width: 700px){nav.navigation{flex-direction:column;align-items:center;border-bottom:2px solid #1b1b26}}@media screen and (max-width: 550px){.secondary-nav{padding:.8rem}.breadcrumbs-container{margin:0;max-width:50%}.header-links{padding:.4rem;margin:0}}.footer{padding:.5rem}.footer p{margin:0}.page-footer{background:#1b1b26;display:block;padding:0;text-align:center;width:100%}.page-footer a,.page-footer h5,.page-footer label{color:#f5f5f5;font-weight:200}.page-footer a:hover,.page-footer h5:hover,.page-footer label:hover{color:#4facfe}.page-footer .footer-top{background:#262730}.page-footer .footer-copyright{background:#1b1b26;color:#909090;padding:2rem}.application-footer{display:block;font-size:1rem;font-weight:500;padding:3rem}.application-footer h3{display:block;font-weight:500;line-height:1.25;margin:0 0 .75rem}.application-footer ul{display:block;margin:0;padding:0}.application-footer a{text-decoration:none;transition:color 150ms ease-in-out,border-color 150ms ease-in-out}.application-footer .group{flex-basis:calc(33% - 3rem);margin-bottom:3rem;margin-right:3rem}.application-footer .group li{margin-bottom:.375rem}.application-footer .footer-groups{display:flex;flex-direction:row;justify-content:space-between}.application-footer .footer-groups li{margin-bottom:.7rem}.application-footer .group-title{font-size:1.2rem}.application-footer .copyright li{display:inline-block;margin-right:.75rem}.application-footer .footer-container{display:block;width:100%;padding:0;text-align:center}.application-footer .footer-container a,.application-footer .footer-container h5,.application-footer .footer-container label{font-weight:200}.application-footer .footer-top{background:#262730}.application-footer .footer-copyright{background:#1b1b26;color:#999;padding:2rem 1rem}.dashboard-footer{padding:.5rem}.dashboard-footer p{margin:0}@media screen and (max-width: 540px){.application-footer{padding:.3rem}.application-footer .group{flex-basis:100%;margin:.2rem 1.3rem}.application-footer .copyright{margin:1.2rem}.footer-groups{flex-direction:column}.block{text-align:center}.card{margin:1.5%}.controls .button{width:100%;margin:.2rem}}.testimonials{padding:2.5em 0;background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.5)),url("bg/city.jpg");background-position:center top;background-repeat:repeat-x}.pre-text{text-align:center;color:#353740;margin:4rem auto}.quote-image,.quote-avatar{border:5px solid #fff;border-radius:44px;height:73px;width:73px}.quotes{min-height:200px}blockquote{bottom:0;font-size:14px;left:0;right:0;text-align:center;z-index:0}blockquote cite{color:#1b1b26;font-size:16px;text-align:center}blockquote p{color:#353740;font-size:24px;font-style:italic;font-weight:normal;line-height:30px;margin-bottom:10px}blockquote p::before{content:"“"}blockquote p::after{content:"”"}.mask{min-height:200px;overflow:hidden}#slider{border:thin solid #bbb;border-radius:4px;box-shadow:0 0 9px rgba(0,0,0,.15);margin:2rem auto;padding:2rem;text-align:center;width:80%}#slider::before{background:#fff;filter:blur(100px);content:"";position:absolute;top:0;left:0;right:0;bottom:0}.slider{overflow:hidden;position:relative;text-align:center}.slider .slide{left:50%;list-style:none;position:absolute;top:2rem;transform:translate(-50%, -100%);width:100%;max-width:800px}.slider .slide.firstanimation{animation:cycle 20s ease-in-out infinite}.slider .slide.secondanimation{animation:cycletwo 20s ease-in-out infinite}.slider .slide.thirdanimation{animation:cyclethree 20s ease-in-out infinite}@media screen and (min-width: 980px){.testimonials{background-size:cover}.pre-text{max-width:60%;margin:6rem auto}}@media screen and (max-width: 640px){.testimonials{background-size:cover}#slider{width:90%}.mask{min-height:240px}}@keyframes cycle{0%{transform:translate(-50%, 0%);opacity:1}29%{transform:translate(-50%, 0%);opacity:1}33%{transform:translate(-50%, 100%);opacity:0}96%{transform:translate(-50%, -100%);opacity:0}100%{transform:translate(-50%, 0%);opacity:1}}@keyframes cycletwo{0%{transform:translate(-50%, -100%);opacity:0}29%{transform:translate(-50%, -100%);opacity:0}33%{transform:translate(-50%, 0%);opacity:1}62%{transform:translate(-50%, 0%);opacity:1}66%{transform:translate(-50%, 100%);opacity:0}100%{transform:translate(-50%, -100%);opacity:0}}@keyframes cyclethree{0%{transform:translate(-50%, -100%);opacity:0}62%{transform:translate(-50%, -100%);opacity:0}66%{transform:translate(-50%, 0%);opacity:1}96%{transform:translate(-50%, 0%);opacity:1}100%{transform:translate(-50%, 100%);opacity:0}}table{width:100%}table tbody tr:nth-child(odd){border:thin solid #dcdcdc}table tbody tr:nth-child(even){background-color:#f5f5f5;border:thin solid #dcdcdc}table td,table th{padding:8px;text-align:left;text-transform:initial;vertical-align:middle;border-left:thin solid #dcdcdc}table td.small-cell,table th.small-cell{width:80px}.table{font-size:14px;margin:.4em 0}.table th{font-weight:400}.table .profile-pic{height:50px;width:50px;border:3px solid #fff;border-radius:50%}.table .profile-pic img{height:50px;width:50px}.table .profile-link{font-weight:bold;color:#353740}.table .tbody:hover{background:#ddd;color:#353740}.information{font-size:16px;margin:auto 0}.question-content{width:65%}.score{width:35%}.sort-link{font-weight:600;color:#353740}.sort-link.asc{color:#1565c0}.sort-link.desc{color:#1565c0}.sort-link:hover{color:#bdbdbd}@media screen and (max-width: 650px){th:nth-child(3){display:none}th:nth-child(4){display:none}td:nth-child(3){display:none}td:nth-child(4){display:none}.select-form td,.select-form th{border:0}.select-form .score-header{display:none}}.app{min-height:100vh}.app .top-nav{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);top:-60px;padding-top:60px;z-index:3}.app .wrapper{padding:45px 0 40px;min-height:stretch}.app .wrapper .flex .block{margin:1.2rem}.app .wrapper h1,.app .wrapper h2,.app .wrapper h3,.app .wrapper h4{text-transform:capitalize}.app .wrapper p{text-transform:initial}.app .wrapper.right-side{margin-left:165px}.bottom-nav{border-top:1px solid #dcdcdc;bottom:0;min-width:350px}.bottom-nav .icon{margin:auto}.bottom-nav .icon.active{border-top:4px solid #005a84;background:#f5f5f5}.bottom-nav .icon svg{width:30px;height:30px}@media screen and (max-width: 550px){.app .desktop{display:none}.app .wrapper.right-side{margin-left:0px}}.app-container{margin-top:72px;min-height:calc(100vh - 123px)}.actions{align-items:end}.sparkline{padding:.8rem 0 0}.sparkline.decreased{color:crimson}.sparkline.increased{color:#10a233}.overview-cards .overview{border-radius:4px;border-top:2px solid #1e90ff}.overview-cards .overview h1{font-size:50px}.overview-cards .overview p{color:gray;font-weight:600}.overview-cards .overview:first-of-type{margin:0 2rem 0 0}.overview-cards .overview:last-of-type{margin:0 0 0 2rem}.text-area{max-width:80%;margin:auto 4rem;padding:4rem}.text-area svg{width:400px}.app{flex:1}.app.shared{margin:0 0 0 180px}.app.full{margin:0}.document{width:100px}.document.preview{width:100%}.hero-container{text-align:center}.hero-container h1{max-width:750px;margin-left:auto;margin-right:auto;padding:0 30px}.hero-container h3{margin-left:auto;margin-right:auto;max-width:750px;padding:0 30px;position:relative;text-shadow:0 0 6px rgba(0,0,0,.3);z-index:1}.hero{margin-bottom:4rem;padding:150px 0 90px}.hero.overlaid::after{background:url("bg/confetti.png");background-size:cover;background-repeat:repeat;content:"";display:block;height:100%;opacity:.6;pointer-events:none;position:absolute;top:0;width:100%;z-index:0}.texture{background-image:url("bg/cream_dust.png")}.texture.txr-dark{background-image:linear-gradient(#0202020d, #0202020d),url("bg/cream_dust.png")}.lighter{background-image:linear-gradient(to top, #d5d4d0 0%, #d5d4d0 1%, #eeeeec 31%, #efeeec 75%, #e9e9e7 100%)}.backimage{background:rgba(0,0,0,.5);width:60%}.sideimage{background-image:url("bg/main.png");background-size:cover;width:40%}.banner{background-image:url("bg/main.png");background-size:cover;min-height:450px;margin-bottom:13px;position:relative}.banner.image-grad{background-image:linear-gradient(rgba(36, 70, 109, 0.5), rgba(36, 70, 109, 0.1)),url("bg/main.png")}.grad{background-image:linear-gradient(rgba(36, 70, 109, 0.5), rgba(21, 101, 192, 0.1))}.icon-item{float:left;display:block;margin-right:2%;width:48%;padding-bottom:0;padding-left:2.625rem;position:relative}.icon-item h2{font-size:1.1rem;display:block;margin:.67rem 0}.icon-item p{font-size:1rem;margin:0 0 .75rem}.icon-item svg,.icon-item img{position:absolute;top:-5px;left:0;max-width:31px}.icon-item:nth-child(odd){clear:left}.icon-item:last-child,.icon-item:nth-child(2n){margin-right:0}.item-blocks{margin-top:1rem}.item-blocks svg,.item-blocks img{width:20px}.item-blocks::after{clear:both;content:"";display:block}.top-spaced{margin:2rem 0;border-bottom:1px solid #bdbdbd}.top-spaced h2{margin:-1.4rem 0}.top-spaced .summaries{border-top:2px solid #bbb;margin:.2rem -2rem;padding:1.8rem 2rem}.section-hero-image{max-width:none;width:100%}hr{border-bottom:2px solid #dcdcdc;margin:.5rem 0}hr.hr-blue{border-bottom:2px solid #bdbdbd}hr.hr-red{border-bottom:2px solid #d8452e}hr.hr-green{border-bottom:2px solid #65b73c}.dropdown-button{background-image:linear-gradient(to bottom, #fff 0%, #ddd 100%);background-blend-mode:lighten;border:thin solid #bdbdbd;color:#1b1b26}.dropdown-button.iconed{padding:.4rem .4rem .4rem 1.8rem}.dropdown-button:hover{background-image:linear-gradient(to bottom, #fff 0%, #bbb 100%);color:#1b1b26}.dropdown-menu{margin:.1rem 0;border:thin solid #dcdcdc;border-radius:.4rem;box-shadow:0 10px 10px 4px rgba(0,0,0,.1);background:#fff;position:absolute;width:190px;display:none}.dropdown-menu.active{display:block}.select_item{border-bottom:thin solid #dcdcdc;color:#1b1b26;display:flex;font-weight:600;padding:.6rem .8rem .4rem .4rem;width:100%}.select_item:hover{background-color:#dcdcdc;color:#1b1b26}@media screen and (max-width: 250px){.panel .half-width{width:100%;margin:.8rem}.panel .third-width{width:100%;margin:.8rem}.panel.flex{flex-wrap:wrap}}@media screen and (min-width: 250px){.panel .half-width{width:100%;margin:.8rem}.panel .third-width{width:100%;margin:.8rem}.panel.flex{flex-wrap:wrap}}@media screen and (min-width: 800px){.panel .third-width{width:29%}}@media screen and (max-width: 890px){.backimage{width:100%;background-size:cover;background-image:linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.6)),url("bg/main.png")}.sideimage{display:none}}@media screen and (min-width: 1000px){.panel{margin:2rem 0 0}.panel .half-width{width:45%}.panel .third-width{width:29%}}.landing .button{border-radius:0}.bttn{border-radius:3px;display:inline-block}.bttn.danger{background-color:crimson;border:2px solid #d8452e;color:#f5f5f5}.bttn.danger:hover,.bttn.danger:focus{background-color:#d8452e;color:#f5f5f5}.bttn.danger:disabled{cursor:not-allowed;opacity:.5}.bttn.danger:disabled:hover{background-color:#d8452e}.bttn.success{background-color:#21ba45;border:2px solid #65b73c;color:#f5f5f5}.bttn.success:hover,.bttn.success:focus{background-color:#65b73c;color:#f5f5f5}.bttn.success:disabled{cursor:not-allowed;opacity:.5}.bttn.success:disabled:hover{background-color:#65b73c}.bttn.warning{background-color:#daa520;border:2px solid #fee902;color:#f5f5f5}.bttn.warning:hover,.bttn.warning:focus{background-color:#fee902;color:#f5f5f5}.bttn.warning:disabled{cursor:not-allowed;opacity:.5}.bttn.warning:disabled:hover{background-color:#fee902}.bttn.info{background-color:#00bfff;border:2px solid #4facfe;color:#f5f5f5}.bttn.info:hover,.bttn.info:focus{background-color:#4facfe;color:#f5f5f5}.bttn.info:disabled{cursor:not-allowed;opacity:.5}.bttn.info:disabled:hover{background-color:#4facfe}.bttn.dark{background-color:#1b1b26;border:2px solid #353740;color:#f5f5f5}.bttn.dark:hover,.bttn.dark:focus{background-color:#353740;color:#f5f5f5}.bttn.dark:disabled{cursor:not-allowed;opacity:.5}.bttn.dark:disabled:hover{background-color:#353740}.bttn.light{background-color:#bbb;border:2px solid #ddd;color:#f5f5f5}.bttn.light:hover,.bttn.light:focus{background-color:#ddd;color:#f5f5f5}.bttn.light:disabled{cursor:not-allowed;opacity:.5}.bttn.light:disabled:hover{background-color:#ddd}.bttn.clear{background-color:rgba(0,0,0,.2);border:2px solid #f5f5f5;color:#353740}.bttn.clear:hover,.bttn.clear:focus{background-color:#f5f5f5;color:#353740}.bttn.clear:disabled{cursor:not-allowed;opacity:.5}.bttn.clear:disabled:hover{background-color:#f5f5f5}.wrap{max-width:80%;margin:2rem 0 2rem 2rem;padding:2rem;border-radius:1.2rem;box-shadow:0 10px 10px 4px rgba(0,0,0,.1)}.wrap.offset-left{margin:2rem}.wrap.offset-right{margin:2rem}.wrap.offset-up{margin:2rem 0 2rem 2rem}.wrap.raised{z-index:1}.wrap .svg{width:70%;max-width:200px;margin:auto}@media screen and (min-width: 540px){.wrap{max-width:60%}.wrap.offset-left{margin:-4rem 0 -4rem 6rem}.wrap.offset-right{margin:-4rem 4rem -4rem 0}}@media screen and (min-width: 480px){.wrap{max-width:60%}.wrap.offset-left{margin:-4rem 0 -4rem 4rem}}/*# sourceMappingURL=application.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../_src/sass/zikode/_common.scss","../../_src/sass/zikode/_variables.scss","../../_src/sass/zikode/_normalize.scss","../../_src/sass/zikode/_layout.scss","../../_src/sass/zikode/_page.scss","../../_src/sass/zikode/_forms.scss","../../_src/sass/zikode/_users.scss","../../_src/sass/zikode/_cards.scss","../../_src/sass/zikode/_controls.scss","../../_src/sass/zikode/_posts.scss","../../_src/sass/zikode/_comments.scss","../../_src/sass/zikode/_navigation.scss","../../_src/sass/zikode/_footer.scss","../../_src/sass/zikode/_testimonials.scss","../../_src/sass/zikode/_table.scss","../../_src/sass/zikode/_dashboard.scss","../../_src/sass/zikode/_landing.scss"],"names":[],"mappings":"CAIA,KAEE,eACA,gBACA,YACA,gBACA,kCAGF,KACE,sBACA,YACA,WAGF,mBAGE,mBACA,SACA,UAGF,IACE,gCACA,cAGF,MACE,cAGF,SACE,cAGF,EACE,qBACA,mBAGF,SAGE,cAEA,oBACA,cACA,eACA,gBAGF,GACE,iBAGF,GACE,gBAGF,GACE,iBAGF,GACE,iBAGF,IACE,WACA,YACA,eACA,gBACA,oBAGF,OACE,gBACA,SACA,eAGA,gBACA,cAEA,qBAEA,iBACA,sBACA,mBAGF,MACE,kBAGF,OACE,aACA,8BACA,gBACA,aACA,WAGF,SACE,aAGF,WACE,YACA,eAGF,wBAEE,aACA,6BACA,aACA,kBACA,WAIA,qBACE,kBACA,qBAIJ,UACE,WCmBQ,0BDjBR,0BACE,WCWQ,wCDRV,yBACE,WCWS,sCDRX,oBACE,WCIW,wBDDb,sBACE,WCKO,0BDDX,MACE,gBAGF,WACE,UAGF,YACE,YAGF,WACE,WAGF,WACE,gBAGF,aACE,kBAGF,YACE,iBAGF,UACE,kBAGF,UACE,kBAGF,WACE,UAGF,WACE,UAGF,aACE,UAGF,eACE,kBAGF,eACE,kBAGF,WACE,eACA,WACA,MACA,UAGF,cACE,eACA,WACA,SAGF,OACE,eAEA,WACE,MAGF,cACE,SAIJ,QACE,eAEA,gBACE,eAGF,iBACE,cAGF,gBACE,cAKJ,QACE,aAGF,WACE,YAGF,YACE,UAGF,MACE,YAGF,WACE,SAGF,YACE,iBAGF,cACE,mBAGF,eACE,oBAGF,aACE,kBAGF,cACE,kBACA,mBAGF,YACE,UAGF,cACE,oBACA,qBAGF,YACE,mBAEA,oBACE,kBAIJ,cACE,qBAGF,eACE,sBAEA,uBACE,qBAIJ,aACE,oBAGF,YACE,mBAGF,aACE,gBAGF,WACE,iBAGF,YACE,WAGF,YACE,UAGF,aACE,aAGF,iBACE,aAGF,eACE,UAGF,YACE,aACA,sBACA,uBAGF,MACE,aAEA,UACE,mBAGF,aACE,sBAGF,cACE,eAGF,YACE,uBAGF,eACE,qBAGF,eACE,yBAGF,iBACE,2BAGF,qBACE,8BAGF,oBACE,6BAGF,oBACE,6BAGF,oBACE,uBAGF,qBACE,mBAGF,WACE,YAIJ,WACE,eAGF,eACE,oBAGF,aACE,0BAGF,QACE,yBAGF,UACE,yBAGF,UACE,YACA,mBACA,gBACA,uBC5OA,WACE,MAlLG,KAqLL,aACE,MAtLG,KAwLH,qBACE,MAxKE,QA2KJ,mBACE,MApJA,QAuJF,uCACE,MAxIK,QAwHT,WACE,MAxGO,QA2GT,aACE,MA5GO,QA8GP,qBACE,MAxKE,QA2KJ,mBACE,MApJA,QAuJF,uCACE,MAxIK,QAwHT,YACE,MArLI,KAwLN,cACE,MAzLI,KA2LJ,sBACE,MDgPyB,KC7O3B,oBACE,MD4O+C,KCzOjD,yCACE,MDwOmE,KCxPvE,aACE,MAtGQ,QAyGV,eACE,MA1GQ,QA4GR,uBACE,MA7GM,QAgHR,qBACE,MApJA,QAuJF,2CACE,MAxIK,QAwHT,YACE,MD+PmB,QC5PrB,cACE,MD2PmB,QCzPnB,sBACE,MDwPqC,QCrPvC,oBACE,MApIK,QAuIP,yCACE,MArIE,QAqHN,WACE,MAjKI,QAoKN,aACE,MArKI,QAuKJ,qBACE,MAxKE,QA2KJ,mBACE,MApJA,QAuJF,uCACE,MAxIK,QAwHT,YACE,MA7KI,QAgLN,cACE,MAjLI,QAmLJ,sBACE,MApLE,QAuLJ,oBACE,MApJA,QAuJF,yCACE,MAxIK,QAwHT,UACE,MAxJG,QA2JL,YACE,MA5JG,QA8JH,oBACE,MA/JC,QAkKH,kBACE,MApJA,QAuJF,qCACE,MAxIK,QDuYX,QACE,YACA,kBAGF,UACE,iBAGF,cACE,kBAGF,YACE,kBAGF,aACE,gBAGF,YACE,iBAGF,WACE,iBAGF,YACE,SAGF,QACE,qBAGF,SACE,oBAGF,QACE,kBAGF,OACE,sBAGF,SACE,oBAGF,SACE,iBCjfM,QDmfN,iBACE,eAEA,uBACE,iBC3eE,QDgfR,UACE,iBCjfM,QDofR,UACE,iBCtdM,KDydR,WACE,iBC5gBO,KD+gBT,UACE,iBCldM,QDqdR,WACE,iBC3dO,QD8dT,UACE,iBC9eM,QDifR,SACE,iBCtgBK,QDygBP,QACE,iBCrgBI,QDwgBN,YACE,iBCvgBQ,QD0gBV,WACE,iBC5eO,QD+eT,UACE,iBC7iBM,KDgjBR,SACE,iBChgBK,QDmgBP,cACE,iBC3iBU,QD8iBZ,UACE,iBCpjBM,KDujBR,cACE,0BAGF,YACE,0BAGF,aACE,aAGF,aACE,aAGF,cACE,aAGF,qCACE,UACE,oBAGF,aACE,iBAIJ,qCACE,UACE,oBAGF,aACE,iBAIJ,qCACE,UACE,oBAGF,aACE,iBAIJ,qCACE,UACE,mBAGF,cACE,iBE3oBJ,2ZAiFE,SACA,UACA,SACA,eACA,wBAIF,8EAWE,cAGF,KACE,cAGF,MAEE,gBAGF,aAEE,YAEA,0DAEE,WAIJ,MACE,yBACA,iBAKF,EACE,sBAEA,oBAEE,sBC1IJ,cACE,qBAGE,wCACE,gCAOF,wCACE,8BAKN,MACE,aACA,YACA,eAGF,gBACE,iBAGF,WACE,aACA,UAEA,iBACE,sBACA,yBACA,oBAGF,gBACE,iBACA,gBACA,kBAGF,iBACE,WAIJ,cACE,aACA,sBACA,WACA,YACA,mBACA,yBAEA,kBACE,eAGF,gBACE,aACA,MF/BI,KEgCJ,cAGF,iBACE,kBACA,MFrCI,KEyCR,aACE,yEACA,eACA,OACA,SACA,QACA,MACA,UACA,kBACA,kCAEA,mBACE,WAIJ,SACE,yEACA,eACA,OACA,SACA,QACA,MACA,kBACA,kCAEA,eACE,WAIJ,cACE,YAGF,qCACE,WACE,WAIJ,qCACE,WACE,sBAEA,oBACE,YAKN,qCACE,WACE,YC9HJ,QACE,0BAEA,gBACE,SAGF,aACE,WHoEG,QGnEH,eACA,qBACA,kBACA,yBACA,8BACA,+BAEA,oBACE,WHUE,KGTF,WH0IW,wBGzIX,8BACA,+BACA,iBAKN,YACE,WHgEK,QG/DL,WHkHY,4CGjHZ,kBAGF,MACE,qBAKA,iBACE,eAEA,wBACE,iBHfE,KGgBF,0BACA,cACA,MHEE,QGCJ,6BACE,6BACA,gCAGF,4BACE,8BACA,iCAKN,aACE,oBACA,cAEA,sBACE,yBACA,MH/BI,QGgCJ,0BAEA,4BACE,MH3CE,KG4CF,iBHpCE,QGyCR,QACE,qBACA,iBH2BY,QG1BZ,wBACA,MHrDM,KGuDN,iBACE,qBAIA,sCACE,iBHDK,QGEL,0BACA,MHvDE,QG0DJ,sBACE,mBACA,WAEA,4BACE,iBHXG,QGgBT,cACE,iBH5EK,KG6EL,0BACA,MHvEI,QGyEJ,wCACE,yBACA,0BACA,MH5EE,QG+EJ,uBACE,mBACA,WAEA,6BACE,iBHzCA,KGoDR,QACE,YACA,SAGE,6BACE,kBAIJ,cACE,cAGF,cACE,eAMF,4BACE,aAEA,mCACE,cAKN,SACE,WHtIM,KGuIN,WHba,wBGcb,aAGF,WACE,mBAGF,SACE,mBACA,cAGF,mBACE,+BACA,mBACA,iBACA,iBACA,aACA,UAKA,yBACE,MH1JO,KG2JP,gBACA,eACA,kBACA,yBAGF,uBACE,eAIJ,QACE,4FACA,sBACA,gBACA,kBACA,WACA,aACA,cAEA,WACE,mBACA,sBACA,eACA,MHzLI,KG0LJ,gBACA,kBACA,yBAIJ,WACE,MH3LS,KG4LT,gBACA,kBACA,0BAEA,cACE,eAIJ,SACE,MHzMK,KG0ML,eACA,gBACA,iBACA,aAIA,qBACE,uBAEA,0BACE,0BACA,oBACA,eACA,cAEA,gCACE,yBACA,0BAIJ,qCACE,0BAEA,eACA,cAGF,iCACE,0BAEA,eACA,cAEA,uCACE,yBACA,0BAMR,WACE,WHzPM,KG0PN,yBACA,kBACA,sBACA,WHzIa,yBG0Ib,aACA,YACA,UAGF,MACE,aACA,sBACA,YACA,aAEA,kBACE,eAGF,kBACE,eAIJ,QACE,aACA,eACA,YAGF,OACE,mBACA,gBACA,cACA,gBACA,UAEA,mBACE,MHhOG,QGiOH,kBAGF,cACE,WAGF,eACE,kBAIJ,cACE,gCAEA,iBACE,eAMF,yBACE,iBH9SQ,QG+SR,6BACA,gCAIJ,eACE,mBACA,aACA,sBACA,YACA,WAEA,mBACE,YACA,eAGF,iBACE,MHtUI,KGuUJ,cACA,aAGF,kBACE,MH5UI,KG6UJ,kBAIJ,UACE,yBACA,kBAGA,gBACE,yBACA,cAKJ,aACE,WHnQY,eGoQZ,WHlOS,sFGqOX,SACE,WHzQM,qBG0QN,WHvOS,sFG0OX,qCACE,WACE,UACA,mBAGF,MACE,UAEA,mBACE,8BACA,+BACA,aACA,gBAIJ,OACE,WAIJ,qCACE,OACE,WAIJ,qCACE,WACE,UACA,sBAGF,SACE,cAGF,MACE,WAEA,mBACE,6BACA,cACA,eACA,gCAIJ,OACE,UAGF,QACE,cAIJ,qCAGI,aACE,qBAIJ,OACE,WC1cJ,iBAEE,kBAEA,8CAEE,kBAIJ,QACE,UACA,YACA,gBAEA,iBACE,iBACA,kBAGF,8DAIE,WAGF,aACE,WJ2CE,QI1CF,SACA,kBACA,MJJI,KIKJ,eACA,aAGF,eACE,cACA,gBAGF,UACE,MJ2DQ,QIxDV,WACE,gBACA,kBAGF,6BAEE,aAGF,cACE,sBACA,cACA,SACA,UACA,UACA,gCAIJ,OACE,uCACA,iBJ0BO,QIzBP,kBACA,YACA,MJ3CM,KI4CN,gBACA,aACA,kBACA,kBACA,WACA,UAGF,MACE,oBACA,oBAEA,oBACE,mBAGF,SACE,gBAGF,SACE,gBAIJ,cACE,0BAGF,YACE,YAGF,eACE,iBJlEQ,UIqEV,kBACE,iBJtEQ,UIuER,iBAGF,UACE,4CACA,sBACA,4BACA,2BACA,YAGF,SACE,qCACA,sBACA,4BACA,2BACA,YAGF,SACE,qCACA,sBACA,4BACA,2BACA,YAGF,qBACE,QAEE,UACA,kBAGF,IACE,UACA,oBClJJ,iCAEE,aACA,kBACA,YAEA,mDACE,gBACA,cAGF,+CACE,kBACA,gBACA,gBAGF,iDACE,aACA,YACA,WLwDG,QKvDH,kBACA,sBACA,UAGF,uCACE,cACA,gBACA,mBACA,kBAIJ,QACE,2BACA,kBACA,gBACA,UAGF,mBACE,gBACA,aACA,uBACA,YAGF,oBACE,qBACA,gBACA,YACA,kBACA,gBAEA,uBACE,gBACA,gBAGF,uBACE,gBACA,gBAMF,aACE,iBLuDU,cKtDV,kBACA,MACA,QACA,cACA,kBAEA,oBACE,iBLpBI,QKqBJ,gCAKN,QACE,mBAGF,UACE,YAEA,gBACE,eAIA,oBACE,WAIJ,4BACE,cACA,WACA,YACA,cACA,cAIJ,YACE,eACA,cACA,uBAEA,gBACE,eACA,YACA,kBACA,iBL1CG,QK8CP,SACE,6BAGF,gBACE,kBAKA,mBACE,aAEA,0BACE,iBL7GE,KK8GF,WLUM,2CKTN,0BACA,ML5FE,QK+FJ,yBACE,iBLnEC,QKwEP,gBACE,UACA,kBACA,aAEA,uBACE,cACA,UACA,mBAIJ,WACE,iBLtIM,KKuIN,uBACA,kBACA,gBACA,kBACA,UACA,YACA,kBACA,WAEA,2BACE,WLeU,mBKdV,ML1II,QK2IJ,cACA,wCAEA,iCACE,iBL3FK,QK+FT,qCAEE,6BACA,oBL1GI,KK2GJ,WACA,qBACA,UACA,kBACA,UC9LJ,OACE,aACA,uBAGF,MACE,WNqBM,KMpBN,WN8Ia,wBM7Ib,aACA,eACA,oBACA,gBAEA,SACE,MNiCI,QMhCJ,gBACA,eACA,kBAGF,QACE,MNsBG,KMrBH,gBACA,gBAGF,WACE,oBACA,kBACA,0BAIJ,YACE,iBACA,gBAEA,gBACE,gCACA,WACA,sBACA,iBAEA,sBACE,WAKN,aACE,gCAEA,eACE,MNNI,QMUR,cACE,eACA,aACA,eAEA,gBACE,cAIJ,SACE,WACA,gBAEA,aACE,aACA,gBACA,aACA,cACA,YC5EJ,YACE,cP0LY,mBOxLZ,cACE,mBACA,yBACA,oBACA,MP4BI,QO3BJ,eACA,aACA,kBACA,oBAEA,oBACE,iBPqBE,QOpBF,MPYE,KOPR,iBACE,YAGF,cACE,WAGF,cACE,eAGF,YACE,kBACA,eACA,cACA,YACA,eACA,WAGF,kBACE,WACA,YACA,iBPPU,QOQV,0BACA,mBACA,YACA,0BACA,wBAGF,wCACE,wBACA,WACA,YACA,iBP7BM,KO8BN,kBACA,2BACA,0BAEA,gDACE,cACA,kBACA,kBACA,gBACA,wBACA,UACA,kBACA,oBACA,oBACA,gBACA,mCACA,kCACA,cACA,eACA,SACA,eACA,SACA,YAGF,+CACE,cACA,kBACA,kBACA,gBACA,wBACA,UACA,kBACA,oBACA,oBACA,gBACA,mCACA,kCACA,cACA,eACA,SACA,eACA,SACA,YAIJ,+CACE,2BCzGF,gBACE,YACA,eAGF,aACE,iCAEA,gBACE,eAIJ,WACE,iBAGF,aACE,8BACA,iBAGF,cACE,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ACE,SAIJ,qCAEE,oBACE,cAEA,2BACE,gBACA,oBAGF,+BACE,cAIJ,eACE,sBAGF,OACE,kBAGF,MACE,YAIA,kBACE,WACA,cClLN,cACE,gBACA,4FACA,+BACA,2BAGF,UACE,kBACA,MZsCM,QYrCN,iBAGF,2BACE,sBACA,mBACA,YACA,WAGF,QACE,iBAGF,WACE,SACA,eACA,OACA,QACA,kBACA,UAEA,gBACE,MZEI,QYDJ,eACA,kBAGF,aACE,MZQI,QYPJ,eACA,kBACA,mBACA,iBACA,mBAEA,qBACE,YAGF,oBACE,YAKN,MACE,iBACA,gBAGF,QACE,uBACA,kBACA,WZsFa,wBYrFb,iBACA,aACA,kBACA,UAEA,gBACE,WZ5CI,KY6CJ,mBACA,WACA,kBACA,MACA,OACA,QACA,SAIJ,QACE,gBACA,kBACA,kBAEA,eACE,SACA,gBACA,kBACA,SACA,iCACA,WACA,gBAEA,8BACE,yCAGF,+BACE,4CAGF,8BACE,8CAKN,qCACE,cACE,sBAGF,UACE,cACA,kBAIJ,qCACE,cACE,sBAGF,QACE,UAGF,MACE,kBAIJ,iBACE,GACE,8BACA,UAIF,IACE,8BACA,UAIF,IACE,gCACA,UAIF,IACE,iCACA,UAIF,KACE,8BACA,WAKJ,oBACE,GACE,iCACA,UAIF,IACE,iCACA,UAIF,IACE,8BACA,UAIF,IACE,8BACA,UAIF,IACE,gCACA,UAIF,KACE,iCACA,WAKJ,sBACE,GACE,iCACA,UAIF,IACE,iCACA,UAIF,IACE,8BACA,UAIF,IACE,8BACA,UAGF,KACE,gCACA,WCvOJ,MACE,WAII,8BACE,0BAGF,+BACE,iBbgFA,Qa/EA,0BAKN,kBACE,YACA,gBACA,uBACA,sBACA,+BAEA,wCACE,WAKN,OACE,eACA,cAEA,UACE,gBAGF,oBACE,YACA,WACA,sBACA,kBAEA,wBACE,YACA,WAIJ,qBACE,iBACA,MbJI,QaQJ,oBACE,WbsBE,KarBF,MbVE,QaeR,aACE,eACA,cAGF,kBACE,UAGF,OACE,UAGF,WACE,gBACA,Mb9BM,QagCN,eACE,Mb9BG,QaiCL,gBACE,MblCG,QaqCL,iBACE,MbZG,QagBP,qCAEI,gBACE,aAGF,gBACE,aAKF,gBACE,aAGF,gBACE,aAKF,gCACE,SAGF,2BACE,cCjHN,KACE,iBAEA,cACE,WdmJO,sFclJP,UACA,iBACA,UAGF,cACE,oBACA,mBAGE,2BACE,cAIJ,oEACE,0BAGF,gBACE,uBAGF,yBACE,kBAKN,YACE,6BACA,SACA,gBAEA,kBAGE,YAOA,yBACE,6BACA,WdiCE,Qc9BJ,sBACE,WACA,YAKN,qCAGE,cACE,aAKA,yBACI,iBAOR,eACE,gBACA,+BAGF,SACE,gBAGF,WACE,kBAEA,qBACE,MdxCM,Qc2CR,qBACE,MdlCG,QcwCL,0BACE,kBACA,6BAEA,6BACE,eAGF,4BACE,MdtFC,KcuFD,gBAGF,wCACE,kBAGF,uCACE,kBAKN,WACE,cACA,iBACA,aAEA,eACE,YAIJ,KACE,OAEA,YACE,mBAGF,UACE,SAIJ,UACE,YAEA,kBACE,WAIJ,gBACE,kBAEA,mBACE,gBACA,iBACA,kBACA,eAGF,mBACE,iBACA,kBACA,gBACA,eACA,kBACA,mCACA,UAIJ,MACE,mBACA,qBAIE,sBACE,kCACA,sBACA,yBACA,WACA,cACA,YACA,WACA,oBACA,kBACA,MACA,WACA,UAKN,SACE,0CAEA,kBACE,gFAIJ,SACE,yGAGF,WACE,Wd5FW,ec6FX,UAGF,WACE,oCACA,sBACA,UAGF,QACE,oCACA,sBAEA,iBACA,mBACA,kBAED,mBACG,oGAIJ,MACE,kFAGF,WACE,WACA,cACA,gBACA,UACA,iBACA,sBACA,kBAEA,cACE,iBACA,cACA,gBAGF,aACE,eACA,kBAGF,8BAEE,kBACA,SACA,OACA,eAGF,0BACE,WAGF,+CAEE,eAIJ,aACE,gBAEA,kCACE,WAGF,oBACE,WACA,WACA,cAIJ,YACE,cACA,gCAEA,eACE,iBAGF,uBACE,0BACA,mBACA,oBAIJ,oBACE,eACA,WAGF,GACE,gCACA,eAEA,WACE,gCAGF,UACE,gCAGF,YACE,gCAIJ,iBACE,iBdnKY,+CcoKZ,8BACA,0BACA,Md9SM,QcgTN,wBACE,iCAGF,uBACE,iBd5KU,+Cc6KV,MdtTI,Qc0TR,eACE,eACA,OdpKY,mBcqKZ,oBACA,WdjNY,+BckNZ,WdvUM,KcwUN,kBACA,YACA,aAEA,sBACE,cAIJ,aACE,cdlLY,mBcmLZ,Md3UM,Qc4UN,aACA,gBACA,gCACA,WAEA,mBACE,iBdhVQ,QciVR,MdnVI,QcwVR,qCAGI,mBACE,WACA,aAGF,oBACE,WACA,aAGF,YACE,gBAMN,qCAGI,mBACE,WACA,aAGF,oBACE,WACA,aAGF,YACE,gBAON,qCAGI,oBACE,WAWN,qCACE,WACE,WACA,sBACA,4FAGF,WACE,cAKJ,sCACA,OACI,gBAEA,mBACE,UAGF,oBACE,WCxcJ,iBACE,gBAIJ,MACE,cfamB,IeZnB,qBAEA,af+OA,iBAhMQ,QAiMR,yBACA,MAjKM,QAmKN,sCAEE,iBAxME,QAyMF,MAtKI,QAyKN,sBACE,mBACA,WAEA,4BACE,iBAjNA,QezCJ,cf2OA,iBApLM,QAqLN,yBACA,MAjKM,QAmKN,wCAEE,iBAzLI,QA0LJ,MAtKI,QAyKN,uBACE,mBACA,WAEA,6BACE,iBAlME,QepDN,cfuOA,iBAnKU,QAoKV,yBACA,MAjKM,QAmKN,wCAEE,iBA1KK,QA2KL,MAtKI,QAyKN,uBACE,mBACA,WAEA,6BACE,iBAnLG,Qe/DP,WfmOA,iBAzIS,QA0IT,yBACA,MAjKM,QAmKN,kCAEE,iBAxLE,QAyLF,MAtKI,QAyKN,oBACE,mBACA,WAEA,0BACE,iBAjMA,Qe7CJ,Wf+NA,iBAtNM,QAuNN,yBACA,MAjKM,QAmKN,kCAEE,iBAhNI,QAiNJ,MAtKI,QAyKN,oBACE,mBACA,WAEA,0BACE,iBAzNE,QejBN,Yf2NA,iBA1KM,KA2KN,sBACA,MAjKM,QAmKN,oCAEE,iBAjLI,KAkLJ,MAtKI,QAyKN,qBACE,mBACA,WAEA,2BACE,iBA1LE,Ke5CN,YfuNA,iBA9HY,eA+HZ,yBACA,MA5MM,QA8MN,oCAEE,iBArKI,QAsKJ,MAjNI,QAoNN,qBACE,mBACA,WAEA,2BACE,iBA9KE,QenDR,MACE,cACA,wBACA,aACA,qBACA,WfoGY,+BelGZ,kBACE,YAGF,mBACE,YAGF,gBACE,wBAGF,aACE,UAGF,WACE,UACA,gBACA,YAIJ,qCACE,MACE,cAEA,kBACE,0BAGF,mBACE,2BAKN,qCACE,MACE,cAEA,kBACE","file":"application.css"}
data/assets/js/main.js ADDED
@@ -0,0 +1,6 @@
1
+ (()=>{var M=class{constructor(e,t,s){this.eventTarget=e,this.eventName=t,this.eventOptions=s,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(e){this.unorderedBindings.add(e)}bindingDisconnected(e){this.unorderedBindings.delete(e)}handleEvent(e){let t=Z(e);for(let s of this.bindings){if(t.immediatePropagationStopped)break;s.handleEvent(t)}}get bindings(){return Array.from(this.unorderedBindings).sort((e,t)=>{let s=e.index,n=t.index;return s<n?-1:s>n?1:0})}};function Z(r){if("immediatePropagationStopped"in r)return r;{let{stopImmediatePropagation:e}=r;return Object.assign(r,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,e.call(this)}})}}var T=class{constructor(e){this.application=e,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(e=>e.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(e=>e.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((e,t)=>e.concat(Array.from(t.values())),[])}bindingConnected(e){this.fetchEventListenerForBinding(e).bindingConnected(e)}bindingDisconnected(e){this.fetchEventListenerForBinding(e).bindingDisconnected(e)}handleError(e,t,s={}){this.application.handleError(e,`Error ${t}`,s)}fetchEventListenerForBinding(e){let{eventTarget:t,eventName:s,eventOptions:n}=e;return this.fetchEventListener(t,s,n)}fetchEventListener(e,t,s){let n=this.fetchEventListenerMapForEventTarget(e),i=this.cacheKey(t,s),o=n.get(i);return o||(o=this.createEventListener(e,t,s),n.set(i,o)),o}createEventListener(e,t,s){let n=new M(e,t,s);return this.started&&n.connect(),n}fetchEventListenerMapForEventTarget(e){let t=this.eventListenerMaps.get(e);return t||(t=new Map,this.eventListenerMaps.set(e,t)),t}cacheKey(e,t){let s=[e];return Object.keys(t).sort().forEach(n=>{s.push(`${t[n]?"":"!"}${n}`)}),s.join(":")}},Q=/^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;function X(r){let t=r.trim().match(Q)||[];return{eventTarget:Y(t[4]),eventName:t[2],eventOptions:t[9]?ee(t[9]):{},identifier:t[5],methodName:t[7]}}function Y(r){if(r=="window")return window;if(r=="document")return document}function ee(r){return r.split(":").reduce((e,t)=>Object.assign(e,{[t.replace(/^!/,"")]:!/^!/.test(t)}),{})}function te(r){if(r==window)return"window";if(r==document)return"document"}function B(r){return r.replace(/(?:[_-])([a-z0-9])/g,(e,t)=>t.toUpperCase())}function u(r){return r.charAt(0).toUpperCase()+r.slice(1)}function k(r){return r.replace(/([A-Z])/g,(e,t)=>`-${t.toLowerCase()}`)}function se(r){return r.match(/[^\s]+/g)||[]}var C=class{constructor(e,t,s){this.element=e,this.index=t,this.eventTarget=s.eventTarget||e,this.eventName=s.eventName||re(e)||g("missing event name"),this.eventOptions=s.eventOptions||{},this.identifier=s.identifier||g("missing identifier"),this.methodName=s.methodName||g("missing method name")}static forToken(e){return new this(e.element,e.index,X(e.content))}toString(){let e=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${e}->${this.identifier}#${this.methodName}`}get params(){return this.eventTarget instanceof Element?this.getParamsFromEventTargetAttributes(this.eventTarget):{}}getParamsFromEventTargetAttributes(e){let t={},s=new RegExp(`^data-${this.identifier}-(.+)-param$`);return Array.from(e.attributes).forEach(({name:i,value:o})=>{let a=i.match(s),c=a&&a[1];c&&Object.assign(t,{[B(c)]:ne(o)})}),t}get eventTargetName(){return te(this.eventTarget)}},E={a:r=>"click",button:r=>"click",form:r=>"submit",details:r=>"toggle",input:r=>r.getAttribute("type")=="submit"?"click":"input",select:r=>"change",textarea:r=>"input"};function re(r){let e=r.tagName.toLowerCase();if(e in E)return E[e](r)}function g(r){throw new Error(r)}function ne(r){try{return JSON.parse(r)}catch{return r}}var N=class{constructor(e,t){this.context=e,this.action=t}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}get identifier(){return this.context.identifier}handleEvent(e){this.willBeInvokedByEvent(e)&&this.invokeWithEvent(e)}get eventName(){return this.action.eventName}get method(){let e=this.controller[this.methodName];if(typeof e=="function")return e;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}invokeWithEvent(e){let{target:t,currentTarget:s}=e;try{let{params:n}=this.action,i=Object.assign(e,{params:n});this.method.call(this.controller,i),this.context.logDebugActivity(this.methodName,{event:e,target:t,currentTarget:s,action:this.methodName})}catch(n){let{identifier:i,controller:o,element:a,index:c}=this,H={identifier:i,controller:o,element:a,index:c,event:e};this.context.handleError(n,`invoking action "${this.action}"`,H)}}willBeInvokedByEvent(e){let t=e.target;return this.element===t?!0:t instanceof Element&&this.element.contains(t)?this.scope.containsElement(t):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},F=class{constructor(e,t){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=e,this.started=!1,this.delegate=t,this.elements=new Set,this.mutationObserver=new MutationObserver(s=>this.processMutations(s))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(e){this.started&&(this.mutationObserver.disconnect(),this.started=!1),e(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let e=new Set(this.matchElementsInTree());for(let t of Array.from(this.elements))e.has(t)||this.removeElement(t);for(let t of Array.from(e))this.addElement(t)}}processMutations(e){if(this.started)for(let t of e)this.processMutation(t)}processMutation(e){e.type=="attributes"?this.processAttributeChange(e.target,e.attributeName):e.type=="childList"&&(this.processRemovedNodes(e.removedNodes),this.processAddedNodes(e.addedNodes))}processAttributeChange(e,t){let s=e;this.elements.has(s)?this.delegate.elementAttributeChanged&&this.matchElement(s)?this.delegate.elementAttributeChanged(s,t):this.removeElement(s):this.matchElement(s)&&this.addElement(s)}processRemovedNodes(e){for(let t of Array.from(e)){let s=this.elementFromNode(t);s&&this.processTree(s,this.removeElement)}}processAddedNodes(e){for(let t of Array.from(e)){let s=this.elementFromNode(t);s&&this.elementIsActive(s)&&this.processTree(s,this.addElement)}}matchElement(e){return this.delegate.matchElement(e)}matchElementsInTree(e=this.element){return this.delegate.matchElementsInTree(e)}processTree(e,t){for(let s of this.matchElementsInTree(e))t.call(this,s)}elementFromNode(e){if(e.nodeType==Node.ELEMENT_NODE)return e}elementIsActive(e){return e.isConnected!=this.element.isConnected?!1:this.element.contains(e)}addElement(e){this.elements.has(e)||this.elementIsActive(e)&&(this.elements.add(e),this.delegate.elementMatched&&this.delegate.elementMatched(e))}removeElement(e){this.elements.has(e)&&(this.elements.delete(e),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(e))}},x=class{constructor(e,t,s){this.attributeName=t,this.delegate=s,this.elementObserver=new F(e,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(e){this.elementObserver.pause(e)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(e){return e.hasAttribute(this.attributeName)}matchElementsInTree(e){let t=this.matchElement(e)?[e]:[],s=Array.from(e.querySelectorAll(this.selector));return t.concat(s)}elementMatched(e){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(e,this.attributeName)}elementUnmatched(e){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(e,this.attributeName)}elementAttributeChanged(e,t){this.delegate.elementAttributeValueChanged&&this.attributeName==t&&this.delegate.elementAttributeValueChanged(e,t)}},S=class{constructor(e,t){this.element=e,this.delegate=t,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(s=>this.processMutations(s))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let e of this.knownAttributeNames)this.refreshAttribute(e,null)}processMutations(e){if(this.started)for(let t of e)this.processMutation(t)}processMutation(e){let t=e.attributeName;t&&this.refreshAttribute(t,e.oldValue)}refreshAttribute(e,t){let s=this.delegate.getStringMapKeyForAttribute(e);if(s!=null){this.stringMap.has(e)||this.stringMapKeyAdded(s,e);let n=this.element.getAttribute(e);if(this.stringMap.get(e)!=n&&this.stringMapValueChanged(n,s,t),n==null){let i=this.stringMap.get(e);this.stringMap.delete(e),i&&this.stringMapKeyRemoved(s,e,i)}else this.stringMap.set(e,n)}}stringMapKeyAdded(e,t){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(e,t)}stringMapValueChanged(e,t,s){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(e,t,s)}stringMapKeyRemoved(e,t,s){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(e,t,s)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(e=>e.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}};function ie(r,e,t){D(r,e).add(t)}function oe(r,e,t){D(r,e).delete(t),ae(r,e)}function D(r,e){let t=r.get(e);return t||(t=new Set,r.set(e,t)),t}function ae(r,e){let t=r.get(e);t!=null&&t.size==0&&r.delete(e)}var d=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((t,s)=>t.concat(Array.from(s)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((t,s)=>t+s.size,0)}add(e,t){ie(this.valuesByKey,e,t)}delete(e,t){oe(this.valuesByKey,e,t)}has(e,t){let s=this.valuesByKey.get(e);return s!=null&&s.has(t)}hasKey(e){return this.valuesByKey.has(e)}hasValue(e){return Array.from(this.valuesByKey.values()).some(s=>s.has(e))}getValuesForKey(e){let t=this.valuesByKey.get(e);return t?Array.from(t):[]}getKeysForValue(e){return Array.from(this.valuesByKey).filter(([t,s])=>s.has(e)).map(([t,s])=>t)}};var m=class{constructor(e,t,s){this.attributeObserver=new x(e,t,this),this.delegate=s,this.tokensByElement=new d}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(e){this.attributeObserver.pause(e)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(e){this.tokensMatched(this.readTokensForElement(e))}elementAttributeValueChanged(e){let[t,s]=this.refreshTokensForElement(e);this.tokensUnmatched(t),this.tokensMatched(s)}elementUnmatchedAttribute(e){this.tokensUnmatched(this.tokensByElement.getValuesForKey(e))}tokensMatched(e){e.forEach(t=>this.tokenMatched(t))}tokensUnmatched(e){e.forEach(t=>this.tokenUnmatched(t))}tokenMatched(e){this.delegate.tokenMatched(e),this.tokensByElement.add(e.element,e)}tokenUnmatched(e){this.delegate.tokenUnmatched(e),this.tokensByElement.delete(e.element,e)}refreshTokensForElement(e){let t=this.tokensByElement.getValuesForKey(e),s=this.readTokensForElement(e),n=he(t,s).findIndex(([i,o])=>!le(i,o));return n==-1?[[],[]]:[t.slice(n),s.slice(n)]}readTokensForElement(e){let t=this.attributeName,s=e.getAttribute(t)||"";return ce(s,e,t)}};function ce(r,e,t){return r.trim().split(/\s+/).filter(s=>s.length).map((s,n)=>({element:e,attributeName:t,content:s,index:n}))}function he(r,e){let t=Math.max(r.length,e.length);return Array.from({length:t},(s,n)=>[r[n],e[n]])}function le(r,e){return r&&e&&r.index==e.index&&r.content==e.content}var p=class{constructor(e,t,s){this.tokenListObserver=new m(e,t,this),this.delegate=s,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(e){let{element:t}=e,{value:s}=this.fetchParseResultForToken(e);s&&(this.fetchValuesByTokenForElement(t).set(e,s),this.delegate.elementMatchedValue(t,s))}tokenUnmatched(e){let{element:t}=e,{value:s}=this.fetchParseResultForToken(e);s&&(this.fetchValuesByTokenForElement(t).delete(e),this.delegate.elementUnmatchedValue(t,s))}fetchParseResultForToken(e){let t=this.parseResultsByToken.get(e);return t||(t=this.parseToken(e),this.parseResultsByToken.set(e,t)),t}fetchValuesByTokenForElement(e){let t=this.valuesByTokenByElement.get(e);return t||(t=new Map,this.valuesByTokenByElement.set(e,t)),t}parseToken(e){try{return{value:this.delegate.parseValueForToken(e)}}catch(t){return{error:t}}}},V=class{constructor(e,t){this.context=e,this.delegate=t,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new p(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(e){let t=new N(this.context,e);this.bindingsByAction.set(e,t),this.delegate.bindingConnected(t)}disconnectAction(e){let t=this.bindingsByAction.get(e);t&&(this.bindingsByAction.delete(e),this.delegate.bindingDisconnected(t))}disconnectAllActions(){this.bindings.forEach(e=>this.delegate.bindingDisconnected(e)),this.bindingsByAction.clear()}parseValueForToken(e){let t=C.forToken(e);if(t.identifier==this.identifier)return t}elementMatchedValue(e,t){this.connectAction(t)}elementUnmatchedValue(e,t){this.disconnectAction(t)}},L=class{constructor(e,t){this.context=e,this.receiver=t,this.stringMapObserver=new S(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap,this.invokeChangedCallbacksForDefaultValues()}start(){this.stringMapObserver.start()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(e){if(e in this.valueDescriptorMap)return this.valueDescriptorMap[e].name}stringMapKeyAdded(e,t){let s=this.valueDescriptorMap[t];this.hasValue(e)||this.invokeChangedCallback(e,s.writer(this.receiver[e]),s.writer(s.defaultValue))}stringMapValueChanged(e,t,s){let n=this.valueDescriptorNameMap[t];e!==null&&(s===null&&(s=n.writer(n.defaultValue)),this.invokeChangedCallback(t,e,s))}stringMapKeyRemoved(e,t,s){let n=this.valueDescriptorNameMap[e];this.hasValue(e)?this.invokeChangedCallback(e,n.writer(this.receiver[e]),s):this.invokeChangedCallback(e,n.writer(n.defaultValue),s)}invokeChangedCallbacksForDefaultValues(){for(let{key:e,name:t,defaultValue:s,writer:n}of this.valueDescriptors)s!=null&&!this.controller.data.has(e)&&this.invokeChangedCallback(t,n(s),void 0)}invokeChangedCallback(e,t,s){let n=`${e}Changed`,i=this.receiver[n];if(typeof i=="function"){let o=this.valueDescriptorNameMap[e],a=o.reader(t),c=s;s&&(c=o.reader(s)),i.call(this.receiver,a,c)}}get valueDescriptors(){let{valueDescriptorMap:e}=this;return Object.keys(e).map(t=>e[t])}get valueDescriptorNameMap(){let e={};return Object.keys(this.valueDescriptorMap).forEach(t=>{let s=this.valueDescriptorMap[t];e[s.name]=s}),e}hasValue(e){let t=this.valueDescriptorNameMap[e],s=`has${u(t.name)}`;return this.receiver[s]}},$=class{constructor(e,t){this.context=e,this.delegate=t,this.targetsByName=new d}start(){this.tokenListObserver||(this.tokenListObserver=new m(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:e,content:t}){this.scope.containsElement(e)&&this.connectTarget(e,t)}tokenUnmatched({element:e,content:t}){this.disconnectTarget(e,t)}connectTarget(e,t){var s;this.targetsByName.has(t,e)||(this.targetsByName.add(t,e),(s=this.tokenListObserver)===null||s===void 0||s.pause(()=>this.delegate.targetConnected(e,t)))}disconnectTarget(e,t){var s;this.targetsByName.has(t,e)&&(this.targetsByName.delete(t,e),(s=this.tokenListObserver)===null||s===void 0||s.pause(()=>this.delegate.targetDisconnected(e,t)))}disconnectAllTargets(){for(let e of this.targetsByName.keys)for(let t of this.targetsByName.getValuesForKey(e))this.disconnectTarget(t,e)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}},K=class{constructor(e,t){this.logDebugActivity=(s,n={})=>{let{identifier:i,controller:o,element:a}=this;n=Object.assign({identifier:i,controller:o,element:a},n),this.application.logDebugActivity(this.identifier,s,n)},this.module=e,this.scope=t,this.controller=new e.controllerConstructor(this),this.bindingObserver=new V(this,this.dispatcher),this.valueObserver=new L(this,this.controller),this.targetObserver=new $(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(s){this.handleError(s,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(e){this.handleError(e,"connecting controller")}}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(e){this.handleError(e,"disconnecting controller")}this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(e,t,s={}){let{identifier:n,controller:i,element:o}=this;s=Object.assign({identifier:n,controller:i,element:o},s),this.application.handleError(e,`Error ${t}`,s)}targetConnected(e,t){this.invokeControllerMethod(`${t}TargetConnected`,e)}targetDisconnected(e,t){this.invokeControllerMethod(`${t}TargetDisconnected`,e)}invokeControllerMethod(e,...t){let s=this.controller;typeof s[e]=="function"&&s[e](...t)}};function b(r,e){let t=I(r);return Array.from(t.reduce((s,n)=>(de(n,e).forEach(i=>s.add(i)),s),new Set))}function ue(r,e){return I(r).reduce((s,n)=>(s.push(...ge(n,e)),s),[])}function I(r){let e=[];for(;r;)e.push(r),r=Object.getPrototypeOf(r);return e.reverse()}function de(r,e){let t=r[e];return Array.isArray(t)?t:[]}function ge(r,e){let t=r[e];return t?Object.keys(t).map(s=>[s,t[s]]):[]}function fe(r){return me(r,pe(r))}function me(r,e){let t=Ae(r),s=be(r.prototype,e);return Object.defineProperties(t.prototype,s),t}function pe(r){return b(r,"blessings").reduce((t,s)=>{let n=s(r);for(let i in n){let o=t[i]||{};t[i]=Object.assign(o,n[i])}return t},{})}function be(r,e){return ye(e).reduce((t,s)=>{let n=ve(r,e,s);return n&&Object.assign(t,{[s]:n}),t},{})}function ve(r,e,t){let s=Object.getOwnPropertyDescriptor(r,t);if(!(s&&"value"in s)){let i=Object.getOwnPropertyDescriptor(e,t).value;return s&&(i.get=s.get||i.get,i.set=s.set||i.set),i}}var ye=(()=>typeof Object.getOwnPropertySymbols=="function"?r=>[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)]:Object.getOwnPropertyNames)(),Ae=(()=>{function r(t){function s(){return Reflect.construct(t,arguments,new.target)}return s.prototype=Object.create(t.prototype,{constructor:{value:s}}),Reflect.setPrototypeOf(s,t),s}function e(){let s=r(function(){this.a.call(this)});return s.prototype.a=function(){},new s}try{return e(),r}catch{return s=>class extends s{}}})();function Ee(r){return{identifier:r.identifier,controllerConstructor:fe(r.controllerConstructor)}}var j=class{constructor(e,t){this.application=e,this.definition=Ee(t),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(e){let t=this.fetchContextForScope(e);this.connectedContexts.add(t),t.connect()}disconnectContextForScope(e){let t=this.contextsByScope.get(e);t&&(this.connectedContexts.delete(t),t.disconnect())}fetchContextForScope(e){let t=this.contextsByScope.get(e);return t||(t=new K(this,e),this.contextsByScope.set(e,t)),t}},P=class{constructor(e){this.scope=e}has(e){return this.data.has(this.getDataKey(e))}get(e){return this.getAll(e)[0]}getAll(e){let t=this.data.get(this.getDataKey(e))||"";return se(t)}getAttributeName(e){return this.data.getAttributeNameForKey(this.getDataKey(e))}getDataKey(e){return`${e}-class`}get data(){return this.scope.data}},R=class{constructor(e){this.scope=e}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(e){let t=this.getAttributeNameForKey(e);return this.element.getAttribute(t)}set(e,t){let s=this.getAttributeNameForKey(e);return this.element.setAttribute(s,t),this.get(e)}has(e){let t=this.getAttributeNameForKey(e);return this.element.hasAttribute(t)}delete(e){if(this.has(e)){let t=this.getAttributeNameForKey(e);return this.element.removeAttribute(t),!0}else return!1}getAttributeNameForKey(e){return`data-${this.identifier}-${k(e)}`}},U=class{constructor(e){this.warnedKeysByObject=new WeakMap,this.logger=e}warn(e,t,s){let n=this.warnedKeysByObject.get(e);n||(n=new Set,this.warnedKeysByObject.set(e,n)),n.has(t)||(n.add(t),this.logger.warn(s,e))}};function f(r,e){return`[${r}~="${e}"]`}var z=class{constructor(e){this.scope=e}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(e){return this.find(e)!=null}find(...e){return e.reduce((t,s)=>t||this.findTarget(s)||this.findLegacyTarget(s),void 0)}findAll(...e){return e.reduce((t,s)=>[...t,...this.findAllTargets(s),...this.findAllLegacyTargets(s)],[])}findTarget(e){let t=this.getSelectorForTargetName(e);return this.scope.findElement(t)}findAllTargets(e){let t=this.getSelectorForTargetName(e);return this.scope.findAllElements(t)}getSelectorForTargetName(e){let t=this.schema.targetAttributeForScope(this.identifier);return f(t,e)}findLegacyTarget(e){let t=this.getLegacySelectorForTargetName(e);return this.deprecate(this.scope.findElement(t),e)}findAllLegacyTargets(e){let t=this.getLegacySelectorForTargetName(e);return this.scope.findAllElements(t).map(s=>this.deprecate(s,e))}getLegacySelectorForTargetName(e){let t=`${this.identifier}.${e}`;return f(this.schema.targetAttribute,t)}deprecate(e,t){if(e){let{identifier:s}=this,n=this.schema.targetAttribute,i=this.schema.targetAttributeForScope(s);this.guide.warn(e,`target:${t}`,`Please replace ${n}="${s}.${t}" with ${i}="${t}". The ${n} attribute is deprecated and will be removed in a future version of Stimulus.`)}return e}get guide(){return this.scope.guide}},W=class{constructor(e,t,s,n){this.targets=new z(this),this.classes=new P(this),this.data=new R(this),this.containsElement=i=>i.closest(this.controllerSelector)===this.element,this.schema=e,this.element=t,this.identifier=s,this.guide=new U(n)}findElement(e){return this.element.matches(e)?this.element:this.queryElements(e).find(this.containsElement)}findAllElements(e){return[...this.element.matches(e)?[this.element]:[],...this.queryElements(e).filter(this.containsElement)]}queryElements(e){return Array.from(this.element.querySelectorAll(e))}get controllerSelector(){return f(this.schema.controllerAttribute,this.identifier)}},_=class{constructor(e,t,s){this.element=e,this.schema=t,this.delegate=s,this.valueListObserver=new p(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(e){let{element:t,content:s}=e,n=this.fetchScopesByIdentifierForElement(t),i=n.get(s);return i||(i=this.delegate.createScopeForElementAndIdentifier(t,s),n.set(s,i)),i}elementMatchedValue(e,t){let s=(this.scopeReferenceCounts.get(t)||0)+1;this.scopeReferenceCounts.set(t,s),s==1&&this.delegate.scopeConnected(t)}elementUnmatchedValue(e,t){let s=this.scopeReferenceCounts.get(t);s&&(this.scopeReferenceCounts.set(t,s-1),s==1&&this.delegate.scopeDisconnected(t))}fetchScopesByIdentifierForElement(e){let t=this.scopesByIdentifierByElement.get(e);return t||(t=new Map,this.scopesByIdentifierByElement.set(e,t)),t}},q=class{constructor(e){this.application=e,this.scopeObserver=new _(this.element,this.schema,this),this.scopesByIdentifier=new d,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((e,t)=>e.concat(t.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(e){this.unloadIdentifier(e.identifier);let t=new j(this.application,e);this.connectModule(t)}unloadIdentifier(e){let t=this.modulesByIdentifier.get(e);t&&this.disconnectModule(t)}getContextForElementAndIdentifier(e,t){let s=this.modulesByIdentifier.get(t);if(s)return s.contexts.find(n=>n.element==e)}handleError(e,t,s){this.application.handleError(e,t,s)}createScopeForElementAndIdentifier(e,t){return new W(this.schema,e,t,this.logger)}scopeConnected(e){this.scopesByIdentifier.add(e.identifier,e);let t=this.modulesByIdentifier.get(e.identifier);t&&t.connectContextForScope(e)}scopeDisconnected(e){this.scopesByIdentifier.delete(e.identifier,e);let t=this.modulesByIdentifier.get(e.identifier);t&&t.disconnectContextForScope(e)}connectModule(e){this.modulesByIdentifier.set(e.identifier,e),this.scopesByIdentifier.getValuesForKey(e.identifier).forEach(s=>e.connectContextForScope(s))}disconnectModule(e){this.modulesByIdentifier.delete(e.identifier),this.scopesByIdentifier.getValuesForKey(e.identifier).forEach(s=>e.disconnectContextForScope(s))}},we={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:r=>`data-${r}-target`},h=class{constructor(e=document.documentElement,t=we){this.logger=console,this.debug=!1,this.logDebugActivity=(s,n,i={})=>{this.debug&&this.logFormattedMessage(s,n,i)},this.element=e,this.schema=t,this.dispatcher=new T(this),this.router=new q(this)}static start(e,t){let s=new h(e,t);return s.start(),s}async start(){await Oe(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(e,t){t.shouldLoad&&this.load({identifier:e,controllerConstructor:t})}load(e,...t){(Array.isArray(e)?e:[e,...t]).forEach(n=>this.router.loadDefinition(n))}unload(e,...t){(Array.isArray(e)?e:[e,...t]).forEach(n=>this.router.unloadIdentifier(n))}get controllers(){return this.router.contexts.map(e=>e.controller)}getControllerForElementAndIdentifier(e,t){let s=this.router.getContextForElementAndIdentifier(e,t);return s?s.controller:null}handleError(e,t,s){var n;this.logger.error(`%s
2
+
3
+ %o
4
+
5
+ %o`,t,e,s),(n=window.onerror)===null||n===void 0||n.call(window,t,"",0,0,e)}logFormattedMessage(e,t,s={}){s=Object.assign({application:this},s),this.logger.groupCollapsed(`${e} #${t}`),this.logger.log("details:",Object.assign({},s)),this.logger.groupEnd()}};function Oe(){return new Promise(r=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>r()):r()})}function Me(r){return b(r,"classes").reduce((t,s)=>Object.assign(t,Te(s)),{})}function Te(r){return{[`${r}Class`]:{get(){let{classes:e}=this;if(e.has(r))return e.get(r);{let t=e.getAttributeName(r);throw new Error(`Missing attribute "${t}"`)}}},[`${r}Classes`]:{get(){return this.classes.getAll(r)}},[`has${u(r)}Class`]:{get(){return this.classes.has(r)}}}}function Be(r){return b(r,"targets").reduce((t,s)=>Object.assign(t,ke(s)),{})}function ke(r){return{[`${r}Target`]:{get(){let e=this.targets.find(r);if(e)return e;throw new Error(`Missing target element "${r}" for "${this.identifier}" controller`)}},[`${r}Targets`]:{get(){return this.targets.findAll(r)}},[`has${u(r)}Target`]:{get(){return this.targets.has(r)}}}}function Ce(r){let e=ue(r,"values"),t={valueDescriptorMap:{get(){return e.reduce((s,n)=>{let i=J(n),o=this.data.getAttributeNameForKey(i.key);return Object.assign(s,{[o]:i})},{})}}};return e.reduce((s,n)=>Object.assign(s,Ne(n)),t)}function Ne(r){let e=J(r),{key:t,name:s,reader:n,writer:i}=e;return{[s]:{get(){let o=this.data.get(t);return o!==null?n(o):e.defaultValue},set(o){o===void 0?this.data.delete(t):this.data.set(t,i(o))}},[`has${u(s)}`]:{get(){return this.data.has(t)||e.hasCustomDefaultValue}}}}function J([r,e]){return De(r,e)}function v(r){switch(r){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function y(r){switch(typeof r){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(r))return"array";if(Object.prototype.toString.call(r)==="[object Object]")return"object"}function Fe(r){let e=v(r.type);if(e){let t=y(r.default);if(e!==t)throw new Error(`Type "${e}" must match the type of the default value. Given default value: "${r.default}" as "${t}"`);return e}}function xe(r){let e=Fe(r),t=y(r),s=v(r),n=e||t||s;if(n)return n;throw new Error(`Unknown value type "${r}"`)}function Se(r){let e=v(r);if(e)return Ve[e];let t=r.default;return t!==void 0?t:r}function De(r,e){let t=`${k(r)}-value`,s=xe(e);return{type:s,key:t,name:B(t),get defaultValue(){return Se(e)},get hasCustomDefaultValue(){return y(e)!==void 0},reader:Le[s],writer:w[s]||w.default}}var Ve={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},Le={array(r){let e=JSON.parse(r);if(!Array.isArray(e))throw new TypeError("Expected array");return e},boolean(r){return!(r=="0"||r=="false")},number(r){return Number(r)},object(r){let e=JSON.parse(r);if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("Expected object");return e},string(r){return r}},w={default:$e,array:O,object:O};function O(r){return JSON.stringify(r)}function $e(r){return`${r}`}var l=class{constructor(e){this.context=e}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(e,{target:t=this.element,detail:s={},prefix:n=this.identifier,bubbles:i=!0,cancelable:o=!0}={}){let a=n?`${n}:${e}`:e,c=new CustomEvent(a,{detail:s,bubbles:i,cancelable:o});return t.dispatchEvent(c),c}};l.blessings=[Me,Be,Ce];l.targets=[];l.values={};var A=class extends l{initialize(){}connect(){}disconnect(){}};var G=h.start();G.debug=!1;window.Stimulus=G;window.Stimulus=h.start();Stimulus.register("hello",A);})();
6
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.pnpm/@hotwired+stimulus@3.0.1/node_modules/@hotwired/stimulus/dist/stimulus.js", "../../_src/javascript/controllers/hello_controller.js", "../../_src/javascript/main.js"],
4
+ "sourcesContent": ["/*\nStimulus 3.0.1\nCopyright \u00A9 2021 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n }\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map;\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(eventListener => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(eventListener => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values())\n .reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map;\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions).sort().forEach(key => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n constructor(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n static forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n toString() {\n const eventNameSuffix = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventNameSuffix}->${this.identifier}#${this.methodName}`;\n }\n get params() {\n if (this.eventTarget instanceof Element) {\n return this.getParamsFromEventTargetAttributes(this.eventTarget);\n }\n else {\n return {};\n }\n }\n getParamsFromEventTargetAttributes(eventTarget) {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`);\n const attributes = Array.from(eventTarget.attributes);\n attributes.forEach(({ name, value }) => {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n Object.assign(params, { [camelize(key)]: typecast(value) });\n }\n });\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n}\nconst defaultEventNames = {\n \"a\": e => \"click\",\n \"button\": e => \"click\",\n \"form\": e => \"submit\",\n \"details\": e => \"toggle\",\n \"input\": e => e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\",\n \"select\": e => \"change\",\n \"textarea\": e => \"input\"\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n const { params } = this.action;\n const actionEvent = Object.assign(event, { params });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set;\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(node, attributeName) {\n const element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map;\n this.mutationObserver = new MutationObserver(mutations => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map(attribute => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some(set => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([key, values]) => values.has(value))\n .map(([key, values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map;\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap;\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach(token => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach(token => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens)\n .findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(content => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap;\n this.valuesByTokenByElement = new WeakMap;\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map;\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map;\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach(binding => this.delegate.bindingDisconnected(binding));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n start() {\n this.stringMapObserver.start();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map(key => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(key => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap;\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach(name => values.add(name));\n return values;\n }, new Set));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(key => [key, definition[key]]) : [];\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [\n ...Object.getOwnPropertyNames(object),\n ...Object.getOwnPropertySymbols(object)\n ];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () { this.a.call(this); };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b;\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap;\n this.connectedContexts = new Set;\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap;\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set;\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target\n || this.findTarget(targetName)\n || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName)\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(element => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n findElement(selector) {\n return this.element.matches(selector)\n ? this.element\n : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...this.element.matches(selector) ? [this.element] : [],\n ...this.queryElements(selector).filter(this.containsElement)\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap;\n this.scopeReferenceCounts = new WeakMap;\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map;\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap;\n this.modulesByIdentifier = new Map;\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find(context => context.element == element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(scope => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(scope => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: identifier => `data-${identifier}-target`\n};\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n static start(element, schema) {\n const application = new Application(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n if (controllerConstructor.shouldLoad) {\n this.load({ identifier, controllerConstructor });\n }\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach(definition => this.router.loadDefinition(definition));\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach(identifier => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map(context => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise(resolve => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n }\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n }\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n }\n }\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n }\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n }\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n }\n }\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n const definition = parseValueDefinitionPair(valueDefinitionPair);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n }\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition]) {\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array: return \"array\";\n case Boolean: return \"boolean\";\n case Number: return \"number\";\n case Object: return \"object\";\n case String: return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\": return \"boolean\";\n case \"number\": return \"number\";\n case \"string\": return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(typeObject) {\n const typeFromObject = parseValueTypeConstant(typeObject.type);\n if (typeFromObject) {\n const defaultValueType = parseValueTypeDefault(typeObject.default);\n if (typeFromObject !== defaultValueType) {\n throw new Error(`Type \"${typeFromObject}\" must match the type of the default value. Given default value: \"${typeObject.default}\" as \"${defaultValueType}\"`);\n }\n return typeFromObject;\n }\n}\nfunction parseValueTypeDefinition(typeDefinition) {\n const typeFromObject = parseValueTypeObject(typeDefinition);\n const typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n const typeFromConstant = parseValueTypeConstant(typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n throw new Error(`Unknown value type \"${typeDefinition}\"`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined)\n return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n const key = `${dasherize(token)}-value`;\n const type = parseValueTypeDefinition(typeDefinition);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() { return defaultValueForDefinition(typeDefinition); },\n get hasCustomDefaultValue() { return parseValueTypeDefault(typeDefinition) !== undefined; },\n reader: readers[type],\n writer: writers[type] || writers.default\n };\n}\nconst defaultValuesByType = {\n get array() { return []; },\n boolean: false,\n number: 0,\n get object() { return {}; },\n string: \"\"\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number(value) {\n return Number(value);\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n return object;\n },\n string(value) {\n return value;\n }\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n // static targets = [\"slide\", \"controls\"]\n // static values = { index: Number }\n\n initialize() {\n }\n\n connect() {\n }\n\n disconnect() {\n }\n}\n", "import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\napplication.debug = false\nwindow.Stimulus = application\n\nexport { application }\n\nimport HelloController from \"./controllers/hello_controller\"\n\nwindow.Stimulus = Application.start()\nStimulus.register(\"hello\", HelloController)\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zikode-jekyll-theme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Siyanda Maphumulo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-04-17 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.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-feed
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jekyll-seo-tag
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jekyll-paginate
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: jekyll-commonmark
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.3.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.3.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: jekyll-include-cache
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.2'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: jemoji
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.12'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.12'
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.3'
125
+ description:
126
+ email:
127
+ - siyanda@typographics.co.za
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - LICENSE.txt
133
+ - README.md
134
+ - _includes/custom-head.html
135
+ - _includes/footer.html
136
+ - _includes/google-analytics.html
137
+ - _includes/head.html
138
+ - _includes/header.html
139
+ - _includes/meta.html
140
+ - _includes/scripts.html
141
+ - _layouts/base.html
142
+ - _layouts/default.html
143
+ - _layouts/home.html
144
+ - _layouts/page.html
145
+ - _layouts/post.html
146
+ - assets/css/application.css
147
+ - assets/css/application.css.map
148
+ - assets/js/main.js
149
+ - assets/js/main.js.map
150
+ homepage: http://typographics.co.za/oss/zikode-jekyll-theme/
151
+ licenses:
152
+ - MIT
153
+ metadata:
154
+ plugin_type: theme
155
+ post_install_message:
156
+ rdoc_options: []
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ requirements: []
170
+ rubygems_version: 3.3.7
171
+ signing_key:
172
+ specification_version: 4
173
+ summary: A Jekyll theme designed to be a starting point for my Jekyll websites.
174
+ test_files: []