├── data
├── sf
│ └── .gitignore
├── nyc
│ └── .gitignore
├── summit
│ └── .gitignore
├── austin
│ └── .gitignore
├── berlin
│ └── .gitignore
├── online
│ └── .gitignore
└── newhaven
│ └── .gitignore
├── .gitignore
├── public
├── images
│ ├── rose.jpg
│ ├── jacky.jpg
│ ├── tantek.jpg
│ ├── teresa.jpg
│ ├── yulia.jpg
│ ├── aaronpk.jpg
│ ├── mjordan.jpg
│ ├── schmarty.jpg
│ ├── mozilla-sf.jpg
│ ├── kitt-hodsden.jpg
│ ├── indieweb-summit-venues.jpg
│ └── indiewebcamp-nyc-venues.jpg
├── assets
│ ├── namelogo.png
│ ├── no-photo.png
│ ├── icomoon
│ │ ├── fonts
│ │ │ ├── icomoon.eot
│ │ │ ├── icomoon.ttf
│ │ │ ├── icomoon.woff
│ │ │ └── icomoon.svg
│ │ ├── style.css
│ │ └── selection.json
│ └── leaflet
│ │ └── images
│ │ ├── marker-icon.png
│ │ ├── marker-icon-2x.png
│ │ └── marker-shadow.png
├── semantic
│ ├── themes
│ │ ├── basic
│ │ │ └── assets
│ │ │ │ └── fonts
│ │ │ │ ├── icons.eot
│ │ │ │ ├── icons.ttf
│ │ │ │ └── icons.woff
│ │ └── default
│ │ │ └── assets
│ │ │ ├── fonts
│ │ │ ├── icons.eot
│ │ │ ├── icons.otf
│ │ │ ├── icons.ttf
│ │ │ ├── icons.woff
│ │ │ └── icons.woff2
│ │ │ └── images
│ │ │ └── flags.png
│ └── components
│ │ ├── sticky.min.css
│ │ ├── tab.min.css
│ │ ├── rail.min.css
│ │ ├── breadcrumb.min.css
│ │ ├── video.min.css
│ │ ├── container.min.css
│ │ ├── nag.min.css
│ │ ├── sticky.css
│ │ ├── site.min.css
│ │ ├── embed.min.css
│ │ ├── shape.min.css
│ │ ├── ad.min.css
│ │ ├── tab.css
│ │ ├── reset.min.css
│ │ ├── dimmer.min.css
│ │ ├── comment.min.css
│ │ ├── breadcrumb.css
│ │ ├── rail.css
│ │ ├── video.css
│ │ ├── container.css
│ │ ├── colorize.min.js
│ │ ├── nag.css
│ │ ├── loader.min.css
│ │ ├── image.min.css
│ │ ├── site.css
│ │ ├── feed.min.css
│ │ ├── embed.css
│ │ ├── popup.min.css
│ │ ├── shape.css
│ │ ├── dimmer.css
│ │ ├── rating.min.js
│ │ ├── nag.min.js
│ │ ├── search.min.css
│ │ ├── ad.css
│ │ ├── item.min.css
│ │ ├── visit.min.js
│ │ ├── message.min.css
│ │ ├── divider.min.css
│ │ ├── video.min.js
│ │ └── comment.css
├── img.php
└── webmention.php
├── lib
├── config.php
├── rsvps.php
└── HTTP.php
├── templates
├── nyc
│ ├── nav.php
│ └── sponsors.php
├── sf
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── berlin
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── berlin2
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── summit
│ ├── nav.php
│ ├── assistance.php
│ └── sponsors.php
├── austin
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── newhaven
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── baltimore
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── online
│ ├── nav.php
│ ├── sponsors.php
│ └── schedule.php
├── show-rsvps.php
└── show-tito-tickets.php
├── README.md
└── get-tito-registrations.php
/data/sf/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/data/nyc/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/data/summit/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/data/austin/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/data/berlin/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/data/online/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | data/
--------------------------------------------------------------------------------
/data/newhaven/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/public/images/rose.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indieweb/2019.indieweb.org/master/public/images/rose.jpg
--------------------------------------------------------------------------------
/public/images/jacky.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indieweb/2019.indieweb.org/master/public/images/jacky.jpg
--------------------------------------------------------------------------------
/public/images/tantek.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indieweb/2019.indieweb.org/master/public/images/tantek.jpg
--------------------------------------------------------------------------------
/public/images/teresa.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indieweb/2019.indieweb.org/master/public/images/teresa.jpg
--------------------------------------------------------------------------------
/public/images/yulia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/indieweb/2019.indieweb.org/master/public/images/yulia.jpg
--------------------------------------------------------------------------------
/lib/config.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 | Sponsors
6 |
--------------------------------------------------------------------------------
/templates/sf/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 | Sponsors
6 |
--------------------------------------------------------------------------------
/templates/berlin/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 | Sponsors
6 |
--------------------------------------------------------------------------------
/templates/berlin2/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 | Sponsors
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 2019.indieweb.org
2 |
3 | To create a new event for a city, you'll need to create a few files:
4 |
5 | * `public/{city}.php` - the main file for the event
6 | * `templates/{city}` - the schedule and sponsor files live here so they are easier to edit
7 | * `data/{city}/.gitignore` - a place to store RSVPs
8 |
--------------------------------------------------------------------------------
/templates/summit/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 | Travel Assistance
6 | Sponsors
7 |
--------------------------------------------------------------------------------
/templates/austin/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 |
6 | Sponsors
7 |
--------------------------------------------------------------------------------
/templates/newhaven/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 |
6 | Sponsors
7 |
--------------------------------------------------------------------------------
/templates/baltimore/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 | Location
5 |
6 | Sponsors
7 |
--------------------------------------------------------------------------------
/templates/online/nav.php:
--------------------------------------------------------------------------------
1 | About
2 | Register
3 | Schedule
4 |
5 |
6 | Sponsors
7 |
--------------------------------------------------------------------------------
/public/semantic/components/sticky.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Sticky
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.sticky{position:static;-webkit-transition:none;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}
--------------------------------------------------------------------------------
/lib/rsvps.php:
--------------------------------------------------------------------------------
1 | strtotime($b['received']);
23 | });
24 | return $rsvps;
25 | }
26 |
--------------------------------------------------------------------------------
/templates/berlin/sponsors.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Mozilla is the not-for-profit behind the lightning fast Firefox browser. We put people over profit to give everyone more power online.
9 |
10 |
11 |
12 |
13 |
14 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
15 | Download Sponsorship Prospectus (PDF)
16 |
17 |
--------------------------------------------------------------------------------
/templates/sf/sponsors.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Mozilla is the not-for-profit behind the lightning fast Firefox browser. We put people over profit to give everyone more power online.
9 |
10 |
11 |
12 |
13 |
14 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
15 | Download Sponsorship Prospectus (PDF)
16 |
17 |
--------------------------------------------------------------------------------
/templates/berlin2/sponsors.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Mozilla is the not-for-profit behind the lightning fast Firefox browser. We put people over profit to give everyone more power online.
9 |
10 |
11 |
12 |
13 |
14 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
15 | Download Sponsorship Prospectus (PDF)
16 |
17 |
--------------------------------------------------------------------------------
/public/assets/icomoon/style.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'icomoon';
3 | src: url('fonts/icomoon.eot?z3jps2');
4 | src: url('fonts/icomoon.eot?z3jps2#iefix') format('embedded-opentype'),
5 | url('fonts/icomoon.ttf?z3jps2') format('truetype'),
6 | url('fonts/icomoon.woff?z3jps2') format('woff'),
7 | url('fonts/icomoon.svg?z3jps2#icomoon') format('svg');
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
12 | [class^="icon-"], [class*=" icon-"] {
13 | /* use !important to prevent issues with browser extensions that change fonts */
14 | font-family: 'icomoon' !important;
15 | speak: none;
16 | font-style: normal;
17 | font-weight: normal;
18 | font-variant: normal;
19 | text-transform: none;
20 | line-height: 1;
21 |
22 | /* Better Font Rendering =========== */
23 | -webkit-font-smoothing: antialiased;
24 | -moz-osx-font-smoothing: grayscale;
25 | }
26 |
27 | .icon-beeminder:before {
28 | content: "\e900";
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/public/img.php:
--------------------------------------------------------------------------------
1 | Special thanks to our sponsors who make it possible to provide food and space for the IndieWebCamp-->
2 |
3 |
11 |
12 |
13 |
14 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
15 | Download Sponsorship Prospectus (PDF)
16 |
17 |
--------------------------------------------------------------------------------
/templates/online/sponsors.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
13 |
14 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
15 | Download Sponsorship Prospectus (PDF)
16 |
17 |
--------------------------------------------------------------------------------
/public/semantic/components/tab.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Tab
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}
--------------------------------------------------------------------------------
/public/semantic/components/rail.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Rail
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.rail{position:absolute;top:0;width:300px;height:100%;font-size:1rem}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:301px}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:300.5px}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}
--------------------------------------------------------------------------------
/public/semantic/components/breadcrumb.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Breadcrumb
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.breadcrumb{line-height:1;margin:1em 0;display:inline-block;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183c4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.71428571em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.71428571rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.breadcrumb{font-size:1rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem}
--------------------------------------------------------------------------------
/public/semantic/components/video.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.video{background-color:#ddd;position:relative;max-width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.ui.video .placeholder{background-color:#333}.ui.video .play{cursor:pointer;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;background:0 0;-webkit-transition:background .2s ease;transition:background .2s ease}.ui.video .play.icon:before{position:absolute;top:50%;left:50%;z-index:11;-webkit-transform:translateX(-50%)translateY(-50%);-ms-transform:translateX(-50%)translateY(-50%);transform:translateX(-50%)translateY(-50%);color:rgba(255,255,255,.7);font-size:7rem;text-shadow:2px 2px 0 rgba(0,0,0,.15);-webkit-transition:color .2s ease;transition:color .2s ease}.ui.video .placeholder{position:absolute;top:0;left:0;display:block;width:100%;height:100%}.ui.video .embed embed,.ui.video .embed iframe,.ui.video .embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.video .play:hover{background:0 0}.ui.video .play:hover:before{color:#fff}.ui.active.video .placeholder,.ui.active.video .play{display:none}.ui.active.video .embed{display:inline}
--------------------------------------------------------------------------------
/public/semantic/components/container.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Container
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{width:auto;margin-left:1em!important;margin-right:1em!important}.ui.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:723px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(723px + 2em)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:933px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(933px + 2em)!important}}@media only screen and (min-width:1200px){.ui.container{width:1127px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(1127px + 2em)!important}}.ui.text.container{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5;font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}
--------------------------------------------------------------------------------
/public/semantic/components/nag.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Nag
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .28571429rem .28571429rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.28571429rem .28571429rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.nags .nag:last-child{border-radius:.28571429rem .28571429rem 0 0}
--------------------------------------------------------------------------------
/templates/summit/assistance.php:
--------------------------------------------------------------------------------
1 |
2 | Travel assistance applications are now closed, and all applicants have been notified. Thanks to everyone who submitted an application! Please see our
remote particiation options if you are not able to attend in person.
3 |
4 |
5 | The IndieWeb community is building the foundation of a web controlled by individuals for themselves. It's crucial to have independent web creators from all backgrounds at IndieWeb Summit to have a rich discussion and build cool things.
6 |
7 | If you are a member of a group that is typically underrepresented (e.g. if you are not hetero, white, cis and male), and otherwise could not afford to travel to IndieWeb Summit on your own, generous donations from sponsors and other IndieWeb Summit attendees are able to be put towards a fund to assist individuals from underrepresented backgrounds with travel, lodging, and/or childcare costs for the Indieweb Summit in Portland.
8 |
9 | If you think that you could benefit from this fund, please apply here . You needn't be an IndieWeb expert or master hacker, just an excited participant willing to share and learn.
10 |
11 | If you would like to contribute to this fund so that we can provide assistance to more individuals from a diverse background, please contact Aaron Parecki .
12 |
--------------------------------------------------------------------------------
/templates/baltimore/sponsors.php:
--------------------------------------------------------------------------------
1 | Special thanks to our sponsors who make it possible to provide food and space for the IndieWeb Summit
2 |
3 |
4 |
5 |
6 |
7 |
8 | The Digital Harbor Foundation is dedicated to fostering learning, creativity, productivity, and community through education. In 2013 we transformed a closed-down rec center in Baltimore City into a vibrant Tech Center for youth.
9 |
10 |
11 |
12 |
13 |
14 | This Week in the IndieWeb Audio Edition is a weekly podcast summarizing activity in the IndieWeb community based on the weekly newsletter .
15 |
16 |
17 |
18 |
19 |
20 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
21 | Download Sponsorship Prospectus (PDF)
22 |
23 |
--------------------------------------------------------------------------------
/public/semantic/components/sticky.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Sticky
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Sticky
15 | *******************************/
16 |
17 | .ui.sticky {
18 | position: static;
19 | -webkit-transition: none;
20 | transition: none;
21 | z-index: 800;
22 | }
23 |
24 |
25 | /*******************************
26 | States
27 | *******************************/
28 |
29 |
30 | /* Bound */
31 | .ui.sticky.bound {
32 | position: absolute;
33 | left: auto;
34 | right: auto;
35 | }
36 |
37 | /* Fixed */
38 | .ui.sticky.fixed {
39 | position: fixed;
40 | left: auto;
41 | right: auto;
42 | }
43 |
44 | /* Bound/Fixed Position */
45 | .ui.sticky.bound.top,
46 | .ui.sticky.fixed.top {
47 | top: 0px;
48 | bottom: auto;
49 | }
50 | .ui.sticky.bound.bottom,
51 | .ui.sticky.fixed.bottom {
52 | top: auto;
53 | bottom: 0px;
54 | }
55 |
56 |
57 | /*******************************
58 | Types
59 | *******************************/
60 |
61 | .ui.native.sticky {
62 | position: -webkit-sticky;
63 | position: -moz-sticky;
64 | position: -ms-sticky;
65 | position: -o-sticky;
66 | position: sticky;
67 | }
68 |
69 |
70 | /*******************************
71 | Theme Overrides
72 | *******************************/
73 |
74 |
75 |
76 | /*******************************
77 | Site Overrides
78 | *******************************/
79 |
80 |
--------------------------------------------------------------------------------
/public/semantic/components/site.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Site
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin);body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;overflow-x:hidden;min-width:320px;background:#fff;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.2857em;margin:calc(2rem - .14285em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.714rem}h3{font-size:1.28rem}h4{font-size:1.071rem}h5{font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,p:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.4285em}a{color:#4183c4;text-decoration:none}a:hover{color:#1e70bf;text-decoration:none}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}
--------------------------------------------------------------------------------
/templates/austin/sponsors.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 | ReView Talent Feedback System improves the capacity of employees by focusing on the feedback delivered by supervisors.
15 |
16 |
17 |
18 |
19 |
20 | Micro.blog is a short-form blogging platform and social network that is independent and ad-free.
21 |
22 |
23 |
24 |
25 |
26 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
27 | Download Sponsorship Prospectus (PDF)
28 |
29 |
--------------------------------------------------------------------------------
/public/semantic/components/embed.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;display:block;width:100%;height:100%;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:'';background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);color:#fff;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);-webkit-transition:opacity .5s ease,color .5s ease;transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#fff}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%}
--------------------------------------------------------------------------------
/public/semantic/components/shape.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Shape
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.shape{position:relative;vertical-align:top;display:inline-block;-webkit-perspective:2000px;perspective:2000px;-webkit-transition:-webkit-transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute;-webkit-transition:-webkit-transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
--------------------------------------------------------------------------------
/public/semantic/components/ad.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Ad
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2013 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child,.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);content:'Ad';color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)}
--------------------------------------------------------------------------------
/public/semantic/components/tab.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Tab
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | UI Tabs
15 | *******************************/
16 |
17 | .ui.tab {
18 | display: none;
19 | }
20 |
21 |
22 | /*******************************
23 | States
24 | *******************************/
25 |
26 |
27 | /*--------------------
28 | Active
29 | ---------------------*/
30 |
31 | .ui.tab.active,
32 | .ui.tab.open {
33 | display: block;
34 | }
35 |
36 | /*--------------------
37 | Loading
38 | ---------------------*/
39 |
40 | .ui.tab.loading {
41 | position: relative;
42 | overflow: hidden;
43 | display: block;
44 | min-height: 250px;
45 | }
46 | .ui.tab.loading * {
47 | position: relative !important;
48 | left: -10000px !important;
49 | }
50 | .ui.tab.loading:before,
51 | .ui.tab.loading.segment:before {
52 | position: absolute;
53 | content: '';
54 | top: 100px;
55 | left: 50%;
56 | margin: -1.25em 0em 0em -1.25em;
57 | width: 2.5em;
58 | height: 2.5em;
59 | border-radius: 500rem;
60 | border: 0.2em solid rgba(0, 0, 0, 0.1);
61 | }
62 | .ui.tab.loading:after,
63 | .ui.tab.loading.segment:after {
64 | position: absolute;
65 | content: '';
66 | top: 100px;
67 | left: 50%;
68 | margin: -1.25em 0em 0em -1.25em;
69 | width: 2.5em;
70 | height: 2.5em;
71 | -webkit-animation: button-spin 0.6s linear;
72 | animation: button-spin 0.6s linear;
73 | -webkit-animation-iteration-count: infinite;
74 | animation-iteration-count: infinite;
75 | border-radius: 500rem;
76 | border-color: #767676 transparent transparent;
77 | border-style: solid;
78 | border-width: 0.2em;
79 | box-shadow: 0px 0px 0px 1px transparent;
80 | }
81 |
82 |
83 | /*******************************
84 | Tab Overrides
85 | *******************************/
86 |
87 |
88 |
89 | /*******************************
90 | User Overrides
91 | *******************************/
92 |
93 |
--------------------------------------------------------------------------------
/public/semantic/components/reset.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Reset
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */*,:after,:before{box-sizing:inherit}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}input[type=text],input[type=email],input[type=search],input[type=password]{-webkit-appearance:none;-moz-appearance:none}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
--------------------------------------------------------------------------------
/templates/show-rsvps.php:
--------------------------------------------------------------------------------
1 |
2 | ', $event, $rsvp['author_photo']);
38 | } else {
39 | $author_photo = '
';
40 | }
41 |
42 | // build author class attribute if there are mf2 classes
43 | $author_class = '';
44 | if ($author_mf2) {
45 | $author_class = sprintf(' class="%s"', implode(' ', $author_mf2));
46 | }
47 | ?>
48 |
59 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/public/semantic/components/dimmer.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Dimmer
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.dimmable{position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{width:100%;height:100%;display:table;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.dimmer>.content>*{display:table-cell;vertical-align:middle;color:#fff}.ui.segment>.ui.dimmer{border-radius:inherit!important}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:block;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui.page.dimmer{position:fixed;-webkit-transform-style:'';transform-style:'';-webkit-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){-webkit-filter:blur(0) grayscale(0);filter:blur(0) grayscale(0);-webkit-transition:800ms -webkit-filter ease,800ms filter ease;transition:800ms filter ease}.blurring.dimmed.dimmable>:not(.dimmer){-webkit-filter:blur(5px) grayscale(.7);filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background-color:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background-color:rgba(255,255,255,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:#fff}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0;height:0;z-index:-100;background-color:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,.85)}
--------------------------------------------------------------------------------
/public/semantic/components/comment.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Comment
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;border-top:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;border-top:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#1e70bf}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(34,36,38,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.small.comments{font-size:.9em}.ui.comments{font-size:1em}.ui.large.comments{font-size:1.1em}.ui.huge.comments{font-size:1.2em}
--------------------------------------------------------------------------------
/templates/sf/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | December 7 -8 , 2019
3 | Mozilla San Francisco , 2 Harrison St , San Francisco , California
4 |
5 |
6 |
7 |
8 |
12 |
13 | Day 1 is about discussing in a BarCamp-like environment. Bring a topic you'd like to discuss or join in on topics as they are added to the board.
14 |
15 |
16 |
17 | 9:00 Organizer setup
18 | 9:30 Doors Open
19 | 10:00 Introduction
20 | 10:15 Opening Keynote
21 | 10:30 Lightning Intros and Demos
22 | 11:00 Session Planning
23 | 12:00 Group photo & lunch break
24 | 13:30 Sessions
25 | 18:00 End of sessions for Day 1
26 |
27 |
28 |
29 |
30 |
34 |
35 | Day 2 is about implementing what we discussed. Work with others or on your own. We'll have demos at the end of the day to see what everyone worked on!
36 |
37 |
38 |
39 | 9:00 Organizer setup
40 | 9:30 Doors Open
41 | 10:00 Day 2 kick-off
42 | 12:00 Lunch
43 | 13:37 Demos!
44 | 14:00 Clean-up
45 | 14:15 Camp closed
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | Schedule is subject to change. View the full schedule grid on the IndieWeb wiki for the latest updates.
54 |
55 |
56 |
--------------------------------------------------------------------------------
/public/semantic/components/breadcrumb.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Breadcrumb
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Breadcrumb
15 | *******************************/
16 |
17 | .ui.breadcrumb {
18 | line-height: 1;
19 | margin: 1em 0em;
20 | display: inline-block;
21 | vertical-align: middle;
22 | }
23 | .ui.breadcrumb:first-child {
24 | margin-top: 0em;
25 | }
26 | .ui.breadcrumb:last-child {
27 | margin-bottom: 0em;
28 | }
29 |
30 |
31 | /*******************************
32 | Content
33 | *******************************/
34 |
35 |
36 | /* Divider */
37 | .ui.breadcrumb .divider {
38 | display: inline-block;
39 | opacity: 0.7;
40 | margin: 0em 0.21428571rem 0em;
41 | font-size: 0.92857143em;
42 | color: rgba(0, 0, 0, 0.4);
43 | vertical-align: baseline;
44 | }
45 |
46 | /* Link */
47 | .ui.breadcrumb a {
48 | color: #4183c4;
49 | }
50 | .ui.breadcrumb a:hover {
51 | color: #1e70bf;
52 | }
53 |
54 | /* Icon Divider */
55 | .ui.breadcrumb .icon.divider {
56 | font-size: 0.85714286em;
57 | vertical-align: baseline;
58 | }
59 |
60 | /* Section */
61 | .ui.breadcrumb a.section {
62 | cursor: pointer;
63 | }
64 | .ui.breadcrumb .section {
65 | display: inline-block;
66 | margin: 0em;
67 | padding: 0em;
68 | }
69 |
70 | /* Loose Coupling */
71 | .ui.breadcrumb.segment {
72 | display: inline-block;
73 | padding: 0.71428571em 1em;
74 | }
75 |
76 |
77 | /*******************************
78 | States
79 | *******************************/
80 |
81 | .ui.breadcrumb .active.section {
82 | font-weight: bold;
83 | }
84 |
85 |
86 | /*******************************
87 | Variations
88 | *******************************/
89 |
90 | .ui.mini.breadcrumb {
91 | font-size: 0.71428571rem;
92 | }
93 | .ui.tiny.breadcrumb {
94 | font-size: 0.85714286rem;
95 | }
96 | .ui.small.breadcrumb {
97 | font-size: 0.92857143rem;
98 | }
99 | .ui.breadcrumb {
100 | font-size: 1rem;
101 | }
102 | .ui.large.breadcrumb {
103 | font-size: 1.14285714rem;
104 | }
105 | .ui.big.breadcrumb {
106 | font-size: 1.28571429rem;
107 | }
108 | .ui.huge.breadcrumb {
109 | font-size: 1.42857143rem;
110 | }
111 | .ui.massive.breadcrumb {
112 | font-size: 1.71428571rem;
113 | }
114 |
115 |
116 | /*******************************
117 | Theme Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/templates/show-tito-tickets.php:
--------------------------------------------------------------------------------
1 | 'Registrations',
19 | 'filter' => ['Regular','Free Ticket'],
20 | ];
21 | $ticket_types[] = [
22 | 'title' => 'Remote Participants',
23 | 'filter' => ['Remote Participation'],
24 | ];
25 |
26 | if($tickets):
27 | foreach($ticket_types as $type):
28 | echo '';
29 | echo '';
30 |
31 | $count = 0;
32 | $hidden = 0;
33 | foreach($tickets as $ticket):
34 | if(array_intersect($type['filter'], $ticket->ticket_type)):
35 | if($ticket->show == 'yes'):
36 | $count++;
37 | if(!$ticket->website || !in_array(parse_url($ticket->website, PHP_URL_HOST), $websites)):
38 | if($ticket->website) {
39 | $websites[] = parse_url($ticket->website, PHP_URL_HOST);
40 | }
41 | ?>
42 |
56 | website, PHP_URL_HOST), $websites)) {
60 | $hidden++;
61 | }
62 | endif;
63 | endif;
64 | endforeach;
65 |
66 | if($count == 0) {
67 | echo 'None yet!';
68 | }
69 |
70 | if($hidden):
71 | echo '
72 |
73 | and '.$hidden.' private registrations
74 |
75 |
';
76 | endif;
77 |
78 | echo '
';
79 | echo '
';
80 |
81 | endforeach;
82 | endif;
83 |
84 |
--------------------------------------------------------------------------------
/public/semantic/components/rail.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Rail
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Rails
15 | *******************************/
16 |
17 | .ui.rail {
18 | position: absolute;
19 | top: 0%;
20 | width: 300px;
21 | height: 100%;
22 | }
23 | .ui.left.rail {
24 | left: auto;
25 | right: 100%;
26 | padding: 0em 2rem 0em 0em;
27 | margin: 0em 2rem 0em 0em;
28 | }
29 | .ui.right.rail {
30 | left: 100%;
31 | right: auto;
32 | padding: 0em 0em 0em 2rem;
33 | margin: 0em 0em 0em 2rem;
34 | }
35 |
36 |
37 | /*******************************
38 | Variations
39 | *******************************/
40 |
41 |
42 | /*--------------
43 | Internal
44 | ---------------*/
45 |
46 | .ui.left.internal.rail {
47 | left: 0%;
48 | right: auto;
49 | padding: 0em 0em 0em 2rem;
50 | margin: 0em 0em 0em 2rem;
51 | }
52 | .ui.right.internal.rail {
53 | left: auto;
54 | right: 0%;
55 | padding: 0em 2rem 0em 0em;
56 | margin: 0em 2rem 0em 0em;
57 | }
58 |
59 | /*--------------
60 | Dividing
61 | ---------------*/
62 |
63 | .ui.dividing.rail {
64 | width: 302.5px;
65 | }
66 | .ui.left.dividing.rail {
67 | padding: 0em 2.5rem 0em 0em;
68 | margin: 0em 2.5rem 0em 0em;
69 | border-right: 1px solid rgba(34, 36, 38, 0.15);
70 | }
71 | .ui.right.dividing.rail {
72 | border-left: 1px solid rgba(34, 36, 38, 0.15);
73 | padding: 0em 0em 0em 2.5rem;
74 | margin: 0em 0em 0em 2.5rem;
75 | }
76 |
77 | /*--------------
78 | Distance
79 | ---------------*/
80 |
81 | .ui.close.rail {
82 | width: 301px;
83 | }
84 | .ui.close.left.rail {
85 | padding: 0em 1em 0em 0em;
86 | margin: 0em 1em 0em 0em;
87 | }
88 | .ui.close.right.rail {
89 | padding: 0em 0em 0em 1em;
90 | margin: 0em 0em 0em 1em;
91 | }
92 | .ui.very.close.rail {
93 | width: 300.5px;
94 | }
95 | .ui.very.close.left.rail {
96 | padding: 0em 0.5em 0em 0em;
97 | margin: 0em 0.5em 0em 0em;
98 | }
99 | .ui.very.close.right.rail {
100 | padding: 0em 0em 0em 0.5em;
101 | margin: 0em 0em 0em 0.5em;
102 | }
103 |
104 | /*--------------
105 | Attached
106 | ---------------*/
107 |
108 | .ui.attached.left.rail,
109 | .ui.attached.right.rail {
110 | padding: 0em;
111 | margin: 0em;
112 | }
113 |
114 | /*--------------
115 | Sizing
116 | ---------------*/
117 |
118 | .ui.rail {
119 | font-size: 1rem;
120 | }
121 |
122 |
123 | /*******************************
124 | Theme Overrides
125 | *******************************/
126 |
127 |
128 |
129 | /*******************************
130 | Site Overrides
131 | *******************************/
132 |
133 |
--------------------------------------------------------------------------------
/public/semantic/components/video.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2014 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Video
15 | *******************************/
16 |
17 | .ui.video {
18 | background-color: #dddddd;
19 | position: relative;
20 | max-width: 100%;
21 | padding-bottom: 56.25%;
22 | height: 0px;
23 | overflow: hidden;
24 | }
25 |
26 | /*--------------
27 | Content
28 | ---------------*/
29 |
30 |
31 | /* Placeholder Image */
32 | .ui.video .placeholder {
33 | background-color: #333333;
34 | }
35 |
36 | /* Play Icon Overlay */
37 | .ui.video .play {
38 | cursor: pointer;
39 | position: absolute;
40 | top: 0px;
41 | left: 0px;
42 | z-index: 10;
43 | width: 100%;
44 | height: 100%;
45 | background: transparent;
46 | -webkit-transition: background 0.2s ease;
47 | transition: background 0.2s ease;
48 | }
49 | .ui.video .play.icon:before {
50 | position: absolute;
51 | top: 50%;
52 | left: 50%;
53 | z-index: 11;
54 | -webkit-transform: translateX(-50%) translateY(-50%);
55 | -ms-transform: translateX(-50%) translateY(-50%);
56 | transform: translateX(-50%) translateY(-50%);
57 | color: rgba(255, 255, 255, 0.7);
58 | font-size: 7rem;
59 | text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.15);
60 | -webkit-transition: color 0.2s ease;
61 | transition: color 0.2s ease;
62 | }
63 | .ui.video .placeholder {
64 | position: absolute;
65 | top: 0px;
66 | left: 0px;
67 | display: block;
68 | width: 100%;
69 | height: 100%;
70 | }
71 |
72 | /* IFrame Embed */
73 | .ui.video .embed iframe,
74 | .ui.video .embed embed,
75 | .ui.video .embed object {
76 | position: absolute;
77 | border: none;
78 | width: 100%;
79 | height: 100%;
80 | top: 0px;
81 | left: 0px;
82 | margin: 0em;
83 | padding: 0em;
84 | }
85 |
86 |
87 | /*******************************
88 | States
89 | *******************************/
90 |
91 |
92 | /*--------------
93 | Hover
94 | ---------------*/
95 |
96 | .ui.video .play:hover {
97 | background: rgba(0, 0, 0, 0);
98 | }
99 | .ui.video .play:hover:before {
100 | color: #ffffff;
101 | }
102 |
103 | /*--------------
104 | Active
105 | ---------------*/
106 |
107 | .ui.active.video .play,
108 | .ui.active.video .placeholder {
109 | display: none;
110 | }
111 | .ui.active.video .embed {
112 | display: inline;
113 | }
114 |
115 |
116 | /*******************************
117 | Video Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/templates/summit/sponsors.php:
--------------------------------------------------------------------------------
1 | Special thanks to our sponsors who make it possible to provide food and space for the IndieWeb Summit
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Thanks to our backers on Open Collective for their continued support!
10 |
11 |
12 |
13 |
14 |
15 |
16 | Mozilla is a non-profit organization helping to keep the Internet healthy, open and accessible to all.
17 |
18 |
19 |
20 |
21 |
22 |
23 | Okta provides an API that seamlessly handles user registration and multi-factor authentication for your applications.
24 |
25 |
26 |
27 |
28 |
29 |
30 | Name.com provides domain names, web hosting, and super easy websites. Unicorns and rainbows come standard with our customer support.
31 |
32 |
33 |
48 |
49 |
50 |
51 |
52 |
53 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
54 | Download Sponsorship Prospectus (PDF)
55 |
56 |
--------------------------------------------------------------------------------
/templates/nyc/sponsors.php:
--------------------------------------------------------------------------------
1 | Special thanks to our sponsors who make it possible to provide food and space for IndieWebCamp NYC
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Thanks to our backers on Open Collective for their continued support!
10 |
11 |
12 |
34 |
49 |
50 |
51 |
52 |
53 |
54 | We would be thrilled to list you as a sponsor! See our sponsorship prospectus for details, or become a monthly supporter .
55 | Download Sponsorship Prospectus (PDF)
56 |
57 |
--------------------------------------------------------------------------------
/public/semantic/components/container.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Container
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Container
15 | *******************************/
16 |
17 |
18 | /* All Sizes */
19 | .ui.container {
20 | display: block;
21 | max-width: 100% !important;
22 | }
23 |
24 | /* Mobile */
25 | @media only screen and (max-width: 767px) {
26 | .ui.container {
27 | width: auto;
28 | margin-left: 1em !important;
29 | margin-right: 1em !important;
30 | }
31 | .ui.grid.container {
32 | width: auto !important;
33 | }
34 | }
35 |
36 | /* Tablet */
37 | @media only screen and (min-width: 768px) and (max-width: 991px) {
38 | .ui.container {
39 | width: 723px;
40 | margin-left: auto !important;
41 | margin-right: auto !important;
42 | }
43 | .ui.grid.container {
44 | width: calc( 723px + 2em ) !important;
45 | }
46 | }
47 |
48 | /* Small Monitor */
49 | @media only screen and (min-width: 992px) and (max-width: 1199px) {
50 | .ui.container {
51 | width: 933px;
52 | margin-left: auto !important;
53 | margin-right: auto !important;
54 | }
55 | .ui.grid.container {
56 | width: calc( 933px + 2em ) !important;
57 | }
58 | }
59 |
60 | /* Large Monitor */
61 | @media only screen and (min-width: 1200px) {
62 | .ui.container {
63 | width: 1127px;
64 | margin-left: auto !important;
65 | margin-right: auto !important;
66 | }
67 | .ui.grid.container {
68 | width: calc( 1127px + 2em ) !important;
69 | }
70 | }
71 |
72 |
73 | /*******************************
74 | Types
75 | *******************************/
76 |
77 |
78 | /* Text Container */
79 | .ui.text.container {
80 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
81 | max-width: 700px !important;
82 | line-height: 1.5;
83 | }
84 | .ui.text.container {
85 | font-size: 1.14285714rem;
86 | }
87 |
88 | /* Fluid */
89 | .ui.fluid.container {
90 | width: 100%;
91 | }
92 |
93 |
94 | /*******************************
95 | Variations
96 | *******************************/
97 |
98 | .ui[class*="left aligned"].container {
99 | text-align: left;
100 | }
101 | .ui[class*="center aligned"].container {
102 | text-align: center;
103 | }
104 | .ui[class*="right aligned"].container {
105 | text-align: right;
106 | }
107 | .ui.justified.container {
108 | text-align: justify;
109 | -webkit-hyphens: auto;
110 | -moz-hyphens: auto;
111 | -ms-hyphens: auto;
112 | hyphens: auto;
113 | }
114 |
115 |
116 | /*******************************
117 | Theme Overrides
118 | *******************************/
119 |
120 |
121 |
122 | /*******************************
123 | Site Overrides
124 | *******************************/
125 |
126 |
--------------------------------------------------------------------------------
/public/assets/icomoon/fonts/icomoon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Generated by IcoMoon
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/public/semantic/components/colorize.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Colorize
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,n,i,t){"use strict";e.fn.colorize=function(n){var i=e.isPlainObject(n)?e.extend(!0,{},e.fn.colorize.settings,n):e.extend({},e.fn.colorize.settings),o=arguments||!1;return e(this).each(function(n){var a,r,c,s,d,g,u,l,m=e(this),f=e(" ")[0],h=e(" ")[0],p=e(" ")[0],v=new Image,w=i.colors,b=(i.paths,i.namespace),y=i.error,C=m.data("module-"+b);return l={checkPreconditions:function(){return l.debug("Checking pre-conditions"),!e.isPlainObject(w)||e.isEmptyObject(w)?(l.error(y.undefinedColors),!1):!0},async:function(e){i.async?setTimeout(e,0):e()},getMetadata:function(){l.debug("Grabbing metadata"),s=m.data("image")||i.image||t,d=m.data("name")||i.name||n,g=i.width||m.width(),u=i.height||m.height(),(0===g||0===u)&&l.error(y.undefinedSize)},initialize:function(){l.debug("Initializing with colors",w),l.checkPreconditions()&&l.async(function(){l.getMetadata(),l.canvas.create(),l.draw.image(function(){l.draw.colors(),l.canvas.merge()}),m.data("module-"+b,l)})},redraw:function(){l.debug("Redrawing image"),l.async(function(){l.canvas.clear(),l.draw.colors(),l.canvas.merge()})},change:{color:function(e,n){return l.debug("Changing color",e),w[e]===t?(l.error(y.missingColor),!1):(w[e]=n,void l.redraw())}},canvas:{create:function(){l.debug("Creating canvases"),f.width=g,f.height=u,h.width=g,h.height=u,p.width=g,p.height=u,a=f.getContext("2d"),r=h.getContext("2d"),c=p.getContext("2d"),m.append(f),a=m.children("canvas")[0].getContext("2d")},clear:function(e){l.debug("Clearing canvas"),c.fillStyle="#FFFFFF",c.fillRect(0,0,g,u)},merge:function(){return e.isFunction(a.blendOnto)?(a.putImageData(r.getImageData(0,0,g,u),0,0),void c.blendOnto(a,"multiply")):void l.error(y.missingPlugin)}},draw:{image:function(e){l.debug("Drawing image"),e=e||function(){},s?(v.src=s,v.onload=function(){r.drawImage(v,0,0),e()}):(l.error(y.noImage),e())},colors:function(){l.debug("Drawing color overlays",w),e.each(w,function(e,n){i.onDraw(c,d,e,n)})}},debug:function(e,n){i.debug&&(n!==t?console.info(i.name+": "+e,n):console.info(i.name+": "+e))},error:function(e){console.warn(i.name+": "+e)},invoke:function(n,o,a){var r;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof n&&C!==t&&(n=n.split("."),e.each(n,function(n,t){return e.isPlainObject(C[t])?(C=C[t],!0):e.isFunction(C[t])?(r=C[t],!0):(l.error(i.error.method),!1)})),e.isFunction(r)?r.apply(o,a):!1}},C!==t&&o?("invoke"==o[0]&&(o=Array.prototype.slice.call(o,1)),l.invoke(o[0],this,Array.prototype.slice.call(o,1))):void l.initialize()}),this},e.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(e,n,i,t){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/public/semantic/components/nag.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Nag
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Nag
15 | *******************************/
16 |
17 | .ui.nag {
18 | display: none;
19 | opacity: 0.95;
20 | position: relative;
21 | top: 0em;
22 | left: 0px;
23 | z-index: 999;
24 | min-height: 0em;
25 | width: 100%;
26 | margin: 0em;
27 | padding: 0.75em 1em;
28 | background: #555555;
29 | box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
30 | font-size: 1rem;
31 | text-align: center;
32 | color: rgba(0, 0, 0, 0.87);
33 | border-radius: 0em 0em 0.28571429rem 0.28571429rem;
34 | -webkit-transition: 0.2s background ease;
35 | transition: 0.2s background ease;
36 | }
37 | a.ui.nag {
38 | cursor: pointer;
39 | }
40 | .ui.nag > .title {
41 | display: inline-block;
42 | margin: 0em 0.5em;
43 | color: #ffffff;
44 | }
45 | .ui.nag > .close.icon {
46 | cursor: pointer;
47 | opacity: 0.4;
48 | position: absolute;
49 | top: 50%;
50 | right: 1em;
51 | font-size: 1em;
52 | margin: -0.5em 0em 0em;
53 | color: #ffffff;
54 | -webkit-transition: opacity 0.2s ease;
55 | transition: opacity 0.2s ease;
56 | }
57 |
58 |
59 | /*******************************
60 | States
61 | *******************************/
62 |
63 |
64 | /* Hover */
65 | .ui.nag:hover {
66 | background: #555555;
67 | opacity: 1;
68 | }
69 | .ui.nag .close:hover {
70 | opacity: 1;
71 | }
72 |
73 |
74 | /*******************************
75 | Variations
76 | *******************************/
77 |
78 |
79 | /*--------------
80 | Static
81 | ---------------*/
82 |
83 | .ui.overlay.nag {
84 | position: absolute;
85 | display: block;
86 | }
87 |
88 | /*--------------
89 | Fixed
90 | ---------------*/
91 |
92 | .ui.fixed.nag {
93 | position: fixed;
94 | }
95 |
96 | /*--------------
97 | Bottom
98 | ---------------*/
99 |
100 | .ui.bottom.nags,
101 | .ui.bottom.nag {
102 | border-radius: 0.28571429rem 0.28571429rem 0em 0em;
103 | top: auto;
104 | bottom: 0em;
105 | }
106 |
107 | /*--------------
108 | White
109 | ---------------*/
110 |
111 | .ui.inverted.nags .nag,
112 | .ui.inverted.nag {
113 | background-color: #f3f4f5;
114 | color: rgba(0, 0, 0, 0.85);
115 | }
116 | .ui.inverted.nags .nag .close,
117 | .ui.inverted.nags .nag .title,
118 | .ui.inverted.nag .close,
119 | .ui.inverted.nag .title {
120 | color: rgba(0, 0, 0, 0.4);
121 | }
122 |
123 |
124 | /*******************************
125 | Groups
126 | *******************************/
127 |
128 | .ui.nags .nag {
129 | border-radius: 0em !important;
130 | }
131 | .ui.nags .nag:last-child {
132 | border-radius: 0em 0em 0.28571429rem 0.28571429rem;
133 | }
134 | .ui.bottom.nags .nag:last-child {
135 | border-radius: 0.28571429rem 0.28571429rem 0em 0em;
136 | }
137 |
138 |
139 | /*******************************
140 | Theme Overrides
141 | *******************************/
142 |
143 |
144 |
145 | /*******************************
146 | User Overrides
147 | *******************************/
148 |
149 |
--------------------------------------------------------------------------------
/public/semantic/components/loader.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Loader
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.loader:before{position:absolute;content:'';top:0;left:50%;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after{position:absolute;content:'';top:0;left:50%;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.loader:after,.ui.loader:before{width:2.2585em;height:2.2585em;margin:0 0 0 -1.12925em}.ui.mini.loader:after,.ui.mini.loader:before{width:1.2857em;height:1.2857em;margin:0 0 0 -.64285em}.ui.small.loader:after,.ui.small.loader:before{width:1.7142em;height:1.7142em;margin:0 0 0 -.8571em}.ui.large.loader:after,.ui.large.loader:before{width:4.5714em;height:4.5714em;margin:0 0 0 -2.2857em}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:rgba(255,255,255,.9)}.ui.dimmer .ui.loader:before{border-color:rgba(255,255,255,.15)}.ui.dimmer .ui.loader:after{border-color:#fff transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.87)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#767676 transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{-webkit-animation-direction:reverse;animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:1.2857em;height:1.2857em;font-size:.71428571em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:1.7142em;height:1.7142em;font-size:.92857143em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:2.2585em;height:2.2585em;font-size:1em}.ui.inverted.dimmer .ui.loader.large,.ui.loader.large{width:4.5714em;height:4.5714em;font-size:1.14285714em}.ui.mini.text.loader{min-width:1.2857em;padding-top:1.99998571em}.ui.small.text.loader{min-width:1.7142em;padding-top:2.42848571em}.ui.text.loader{min-width:2.2585em;padding-top:2.97278571em}.ui.large.text.loader{min-width:4.5714em;padding-top:5.28568571em}.ui.inverted.loader{color:rgba(255,255,255,.9)}.ui.inverted.loader:before{border-color:rgba(255,255,255,.15)}.ui.inverted.loader:after{border-top-color:#fff}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;-webkit-transform:none;-ms-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.centered.inline.loader.active,.ui.centered.inline.loader.visible{display:block;margin-left:auto;margin-right:auto}
--------------------------------------------------------------------------------
/public/semantic/components/image.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Image
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block}.ui.image img,.ui.image svg{display:block;max-width:100%;height:auto}.ui.hidden.image,.ui.hidden.images{display:none}.ui.disabled.image,.ui.disabled.images{cursor:default;opacity:.45}.ui.inline.image,.ui.inline.image img,.ui.inline.image svg{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.image svg,.ui.top.aligned.images .image{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.image svg,.ui.middle.aligned.images .image{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.image svg,.ui.bottom.aligned.images .image{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image>*,.ui.rounded.images .image,.ui.rounded.images .image>*{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.image svg,.ui.bordered.images .image,.ui.bordered.images img,.ui.bordered.images svg,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image>*,.ui.circular.images .image,.ui.circular.images .image>*{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.image svg,.ui.fluid.images,.ui.fluid.images img,.ui.fluid.images svg{display:block;width:100%;height:auto}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.image svg,.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.images svg{margin-right:.25em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.spaced.image{display:inline-block!important;margin-left:.5em;margin-right:.5em}.ui[class*="left spaced"].image{margin-left:.5em;margin-right:0}.ui[class*="right spaced"].image{margin-left:0;margin-right:.5em}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img,.ui.mini.images svg{width:35px;height:auto;font-size:.71428571rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.images svg{width:80px;height:auto;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img,.ui.small.images svg{width:150px;height:auto;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img,.ui.medium.images svg{width:300px;height:auto;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img,.ui.large.images svg{width:450px;height:auto;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img,.ui.big.images svg{width:600px;height:auto;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img,.ui.huge.images svg{width:800px;height:auto;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img,.ui.massive.images svg{width:960px;height:auto;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images img,.ui.images svg{display:inline-block;margin:0 .25rem .5rem}
--------------------------------------------------------------------------------
/public/semantic/components/site.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Site
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Page
15 | *******************************/
16 |
17 | @import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin');
18 | html,
19 | body {
20 | height: 100%;
21 | }
22 | html {
23 | font-size: 14px;
24 | }
25 | body {
26 | margin: 0px;
27 | padding: 0px;
28 | overflow-x: hidden;
29 | min-width: 320px;
30 | background: #ffffff;
31 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
32 | font-size: 14px;
33 | line-height: 1.4285em;
34 | color: rgba(0, 0, 0, 0.87);
35 | font-smoothing: antialiased;
36 | }
37 |
38 |
39 | /*******************************
40 | Headers
41 | *******************************/
42 |
43 | h1,
44 | h2,
45 | h3,
46 | h4,
47 | h5 {
48 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
49 | line-height: 1.2857em;
50 | margin: calc(2rem - 0.14285em ) 0em 1rem;
51 | font-weight: bold;
52 | padding: 0em;
53 | }
54 | h1 {
55 | min-height: 1rem;
56 | font-size: 2rem;
57 | }
58 | h2 {
59 | font-size: 1.714rem;
60 | }
61 | h3 {
62 | font-size: 1.28rem;
63 | }
64 | h4 {
65 | font-size: 1.071rem;
66 | }
67 | h5 {
68 | font-size: 1rem;
69 | }
70 | h1:first-child,
71 | h2:first-child,
72 | h3:first-child,
73 | h4:first-child,
74 | h5:first-child {
75 | margin-top: 0em;
76 | }
77 | h1:last-child,
78 | h2:last-child,
79 | h3:last-child,
80 | h4:last-child,
81 | h5:last-child {
82 | margin-bottom: 0em;
83 | }
84 |
85 |
86 | /*******************************
87 | Text
88 | *******************************/
89 |
90 | p {
91 | margin: 0em 0em 1em;
92 | line-height: 1.4285em;
93 | }
94 | p:first-child {
95 | margin-top: 0em;
96 | }
97 | p:last-child {
98 | margin-bottom: 0em;
99 | }
100 |
101 | /*-------------------
102 | Links
103 | --------------------*/
104 |
105 | a {
106 | color: #4183c4;
107 | text-decoration: none;
108 | }
109 | a:hover {
110 | color: #1e70bf;
111 | text-decoration: none;
112 | }
113 |
114 |
115 | /*******************************
116 | Highlighting
117 | *******************************/
118 |
119 |
120 | /* Site */
121 | ::-webkit-selection {
122 | background-color: #cce2ff;
123 | color: rgba(0, 0, 0, 0.87);
124 | }
125 | ::-moz-selection {
126 | background-color: #cce2ff;
127 | color: rgba(0, 0, 0, 0.87);
128 | }
129 | ::selection {
130 | background-color: #cce2ff;
131 | color: rgba(0, 0, 0, 0.87);
132 | }
133 |
134 | /* Form */
135 | textarea::-webkit-selection,
136 | input::-webkit-selection {
137 | background-color: rgba(100, 100, 100, 0.4);
138 | color: rgba(0, 0, 0, 0.87);
139 | }
140 | textarea::-moz-selection,
141 | input::-moz-selection {
142 | background-color: rgba(100, 100, 100, 0.4);
143 | color: rgba(0, 0, 0, 0.87);
144 | }
145 | textarea::selection,
146 | input::selection {
147 | background-color: rgba(100, 100, 100, 0.4);
148 | color: rgba(0, 0, 0, 0.87);
149 | }
150 |
151 |
152 | /*******************************
153 | Global Overrides
154 | *******************************/
155 |
156 |
157 |
158 | /*******************************
159 | Site Overrides
160 | *******************************/
161 |
162 |
--------------------------------------------------------------------------------
/public/semantic/components/feed.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Feed
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:2.5em;height:auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:'';color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:'';-webkit-transition:.2s color ease;transition:.2s color ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like .icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child::after{display:none}.ui.feed>.event>.content .meta a,.ui.feed>.event>.content .meta>.icon{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);-webkit-transition:color .1s ease;transition:color .1s ease}.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon,.ui.feed>.event>.content .meta>.icon:hover{color:rgba(0,0,0,.95)}.ui.small.feed{font-size:.92857143rem}.ui.feed{font-size:1rem}.ui.large.feed{font-size:1.14285714rem}
--------------------------------------------------------------------------------
/public/semantic/components/embed.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Types
15 | *******************************/
16 |
17 | .ui.embed {
18 | position: relative;
19 | max-width: 100%;
20 | height: 0px;
21 | overflow: hidden;
22 | background: #dcddde;
23 | padding-bottom: 56.25%;
24 | }
25 |
26 | /*-----------------
27 | Embedded Content
28 | ------------------*/
29 |
30 | .ui.embed iframe,
31 | .ui.embed embed,
32 | .ui.embed object {
33 | position: absolute;
34 | border: none;
35 | width: 100%;
36 | height: 100%;
37 | top: 0px;
38 | left: 0px;
39 | margin: 0em;
40 | padding: 0em;
41 | }
42 |
43 | /*-----------------
44 | Embed
45 | ------------------*/
46 |
47 | .ui.embed > .embed {
48 | display: none;
49 | }
50 |
51 | /*--------------
52 | Placeholder
53 | ---------------*/
54 |
55 | .ui.embed > .placeholder {
56 | position: absolute;
57 | cursor: pointer;
58 | top: 0px;
59 | left: 0px;
60 | display: block;
61 | width: 100%;
62 | height: 100%;
63 | background-color: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
64 | }
65 |
66 | /*--------------
67 | Icon
68 | ---------------*/
69 |
70 | .ui.embed > .icon {
71 | cursor: pointer;
72 | position: absolute;
73 | top: 0px;
74 | left: 0px;
75 | width: 100%;
76 | height: 100%;
77 | z-index: 2;
78 | }
79 | .ui.embed > .icon:after {
80 | position: absolute;
81 | top: 0%;
82 | left: 0%;
83 | width: 100%;
84 | height: 100%;
85 | z-index: 3;
86 | content: '';
87 | background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
88 | background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
89 | opacity: 0.5;
90 | -webkit-transition: opacity 0.5s ease;
91 | transition: opacity 0.5s ease;
92 | }
93 | .ui.embed > .icon:before {
94 | position: absolute;
95 | top: 50%;
96 | left: 50%;
97 | z-index: 4;
98 | -webkit-transform: translateX(-50%) translateY(-50%);
99 | -ms-transform: translateX(-50%) translateY(-50%);
100 | transform: translateX(-50%) translateY(-50%);
101 | color: #ffffff;
102 | font-size: 6rem;
103 | text-shadow: 0px 2px 10px rgba(34, 36, 38, 0.2);
104 | -webkit-transition: opacity 0.5s ease, color 0.5s ease;
105 | transition: opacity 0.5s ease, color 0.5s ease;
106 | z-index: 10;
107 | }
108 |
109 |
110 | /*******************************
111 | States
112 | *******************************/
113 |
114 |
115 | /*--------------
116 | Hover
117 | ---------------*/
118 |
119 | .ui.embed .icon:hover:after {
120 | background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
121 | background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
122 | opacity: 1;
123 | }
124 | .ui.embed .icon:hover:before {
125 | color: #ffffff;
126 | }
127 |
128 | /*--------------
129 | Active
130 | ---------------*/
131 |
132 | .ui.active.embed > .icon,
133 | .ui.active.embed > .placeholder {
134 | display: none;
135 | }
136 | .ui.active.embed > .embed {
137 | display: block;
138 | }
139 |
140 |
141 | /*******************************
142 | Video Overrides
143 | *******************************/
144 |
145 |
146 |
147 | /*******************************
148 | Variations
149 | *******************************/
150 |
151 | .ui.square.embed {
152 | padding-bottom: 100%;
153 | }
154 | .ui[class*="4:3"].embed {
155 | padding-bottom: 75%;
156 | }
157 | .ui[class*="16:9"].embed {
158 | padding-bottom: 56.25%;
159 | }
160 | .ui[class*="21:9"].embed {
161 | padding-bottom: 42.85714286%;
162 | }
163 |
--------------------------------------------------------------------------------
/public/semantic/components/popup.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Popup
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.popup{display:none;position:absolute;top:0;right:0;min-width:-webkit-min-content;min-width:-moz-min-content;min-width:min-content;z-index:1900;border:1px solid #d4d4d5;line-height:1.4285em;max-width:250px;background-color:#fff;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.08);margin:0}.ui.popup>.header{padding:0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1.125em;line-height:1.2;font-weight:700}.ui.popup>.header+.content{padding-top:.5em}.ui.popup:before{position:absolute;content:'';width:.75em;height:.75em;background:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #bababc}.ui.top.popup{margin:0 0 .75em}.ui.top.left.popup{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom}.ui.top.center.popup{-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}.ui.top.right.popup{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom}.ui.left.center.popup{margin:0 .75em 0 0;-webkit-transform-origin:right 50%;-ms-transform-origin:right 50%;transform-origin:right 50%}.ui.right.center.popup{margin:0 0 0 .75em;-webkit-transform-origin:left 50%;-ms-transform-origin:left 50%;transform-origin:left 50%}.ui.bottom.popup{margin:.75em 0 0}.ui.bottom.left.popup{-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ui.bottom.center.popup{-webkit-transform-origin:center top;-ms-transform-origin:center top;transform-origin:center top}.ui.bottom.right.popup{-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top;margin-right:0}.ui.bottom.center.popup:before{margin-left:-.325em;top:-.325em;left:50%;right:auto;bottom:auto;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.left.popup{margin-left:0}.ui.bottom.left.popup:before{top:-.325em;left:1em;right:auto;bottom:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.right.popup:before{top:-.325em;right:1em;bottom:auto;left:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.325em;left:50%;margin-left:-.325em}.ui.top.left.popup{margin-left:0}.ui.top.left.popup:before{bottom:-.325em;left:1em;top:auto;right:auto;margin-left:0}.ui.top.right.popup{margin-right:0}.ui.top.right.popup:before{bottom:-.325em;right:1em;top:auto;left:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.325em;bottom:auto;left:auto;margin-top:-.325em;box-shadow:1px -1px 0 0 #bababc}.ui.right.center.popup:before{top:50%;left:-.325em;bottom:auto;right:auto;margin-top:-.325em;box-shadow:-1px 1px 0 0 #bababc}.ui.popup>.ui.grid:not(.padded){width:calc(100% + 1.75rem);margin:-.7rem -.875rem}.ui.loading.popup{display:block;visibility:hidden;z-index:-1}.ui.animating.popup,.ui.visible.popup{display:block}.ui.visible.popup{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.basic.popup:before{display:none}.ui.wide.popup{max-width:350px}.ui[class*="very wide"].popup{max-width:550px}.ui.fluid.popup{width:100%;max-width:none}.ui.inverted.popup{background:#1b1c1d;color:#fff;border:none;box-shadow:none}.ui.inverted.popup .header{background-color:none;color:#fff}.ui.inverted.popup:before{background-color:#1b1c1d;box-shadow:none!important}.ui.flowing.popup{max-width:none}.ui.mini.popup{font-size:.71428571rem}.ui.tiny.popup{font-size:.85714286rem}.ui.small.popup{font-size:.92857143rem}.ui.popup{font-size:1rem}.ui.large.popup{font-size:1.14285714rem}.ui.huge.popup{font-size:1.42857143rem}
--------------------------------------------------------------------------------
/public/semantic/components/shape.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Shape
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Shape
15 | *******************************/
16 |
17 | .ui.shape {
18 | position: relative;
19 | vertical-align: top;
20 | display: inline-block;
21 | -webkit-perspective: 2000px;
22 | perspective: 2000px;
23 | -webkit-transition: -webkit-transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
24 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
25 | }
26 | .ui.shape .sides {
27 | -webkit-transform-style: preserve-3d;
28 | transform-style: preserve-3d;
29 | }
30 | .ui.shape .side {
31 | opacity: 1;
32 | width: 100%;
33 | margin: 0em !important;
34 | -webkit-backface-visibility: hidden;
35 | backface-visibility: hidden;
36 | }
37 | .ui.shape .side {
38 | display: none;
39 | }
40 | .ui.shape .side * {
41 | -webkit-backface-visibility: visible !important;
42 | backface-visibility: visible !important;
43 | }
44 |
45 |
46 | /*******************************
47 | Types
48 | *******************************/
49 |
50 | .ui.cube.shape .side {
51 | min-width: 15em;
52 | height: 15em;
53 | padding: 2em;
54 | background-color: #e6e6e6;
55 | color: rgba(0, 0, 0, 0.87);
56 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
57 | }
58 | .ui.cube.shape .side > .content {
59 | width: 100%;
60 | height: 100%;
61 | display: table;
62 | text-align: center;
63 | -webkit-user-select: text;
64 | -moz-user-select: text;
65 | -ms-user-select: text;
66 | user-select: text;
67 | }
68 | .ui.cube.shape .side > .content > div {
69 | display: table-cell;
70 | vertical-align: middle;
71 | font-size: 2em;
72 | }
73 |
74 |
75 | /*******************************
76 | Variations
77 | *******************************/
78 |
79 | .ui.text.shape.animating .sides {
80 | position: static;
81 | }
82 | .ui.text.shape .side {
83 | white-space: nowrap;
84 | }
85 | .ui.text.shape .side > * {
86 | white-space: normal;
87 | }
88 |
89 |
90 | /*******************************
91 | States
92 | *******************************/
93 |
94 |
95 | /*--------------
96 | Loading
97 | ---------------*/
98 |
99 | .ui.loading.shape {
100 | position: absolute;
101 | top: -9999px;
102 | left: -9999px;
103 | }
104 |
105 | /*--------------
106 | Animating
107 | ---------------*/
108 |
109 | .ui.shape .animating.side {
110 | position: absolute;
111 | top: 0px;
112 | left: 0px;
113 | display: block;
114 | z-index: 100;
115 | }
116 | .ui.shape .hidden.side {
117 | opacity: 0.6;
118 | }
119 |
120 | /*--------------
121 | CSS
122 | ---------------*/
123 |
124 | .ui.shape.animating .sides {
125 | position: absolute;
126 | }
127 | .ui.shape.animating .sides {
128 | -webkit-transition: -webkit-transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
129 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
130 | }
131 | .ui.shape.animating .side {
132 | -webkit-transition: opacity 0.6s ease-in-out;
133 | transition: opacity 0.6s ease-in-out;
134 | }
135 |
136 | /*--------------
137 | Active
138 | ---------------*/
139 |
140 | .ui.shape .active.side {
141 | display: block;
142 | }
143 |
144 |
145 | /*******************************
146 | Theme Overrides
147 | *******************************/
148 |
149 |
150 |
151 | /*******************************
152 | User Overrides
153 | *******************************/
154 |
155 |
--------------------------------------------------------------------------------
/public/assets/icomoon/selection.json:
--------------------------------------------------------------------------------
1 | {
2 | "IcoMoonType": "selection",
3 | "icons": [
4 | {
5 | "icon": {
6 | "paths": [
7 | "M854.567 232.446c-34.412 0-69.756 9.189-101.644 25.894-3.48-15.068-8.268-29.624-14.397-43.589 3.764-5.754 7.835-11.554 12.225-17.388 38.313-50.924 28.044-123.546-22.892-161.859-20.254-15.204-44.249-23.222-69.483-23.222-36.141 0-70.689 17.24-92.41 46.125-3.4 4.526-6.71 9.075-9.951 13.669-12.225-1.979-24.609-2.968-36.971-2.968-9.496 0-18.889 0.546-28.191 1.672-2.934-4.151-5.97-8.29-9.064-12.373-21.675-28.862-56.212-46.125-92.376-46.125-25.28 0-49.332 8.051-69.518 23.267-50.901 38.278-61.159 110.889-22.847 161.836 2.24 3.002 4.424 5.97 6.493 8.95-8.006 16.546-14.192 34.014-18.389 51.925-31.671-16.66-67.050-25.803-101.644-25.803-83.153 0-180.293 56.644-180.293 216.309 0 159.653 97.14 216.297 180.293 216.297 13.794 0 27.737-1.592 41.554-4.412 0.034 1.456-0.068 2.866 0.034 4.31 7.608 95.81 51.436 182.647 120.351 238.484l119.85 104.316c15.364 13.408 34.492 20.094 53.608 20.094 19.105 0 38.176-6.664 53.528-20.004l120.055-104.441c68.926-55.894 112.788-142.686 120.419-238.427 0.102-1.444 0-2.854 0.023-4.287 13.828 2.786 27.782 4.367 41.645 4.367 83.164-0.011 180.282-56.656 180.282-216.309 0-159.664-97.118-216.309-180.293-216.309zM368.979 100.711c6.13-4.606 13.294-6.846 20.402-6.846 10.326 0 20.527 4.697 27.202 13.567 15.466 20.549 27.543 39.893 37.084 57.827 19.947-9.359 42.065-14.579 65.378-14.579 26.383 0 51.174 6.789 73.043 18.559 9.86-19.048 22.483-39.711 39.097-61.807 6.675-8.882 16.876-13.567 27.202-13.567 7.108 0 14.295 2.229 20.424 6.846 15.011 11.292 18.002 32.604 6.71 47.615-18.935 25.189-31.626 47.831-40.212 67.209 13.317 18.070 23.131 39.109 28.339 61.967l-154.604 105.431-154.626-105.419c6.004-26.201 18.059-49.935 34.48-69.654-8.415-17.615-20.129-37.585-36.664-59.533-11.292-15.011-8.268-36.322 6.744-47.615zM183.489 583.457c-63.627 0-98.698-47.842-98.698-134.691 0-86.871 35.072-134.714 98.698-134.714 25.781 0 52.846 8.427 75.363 23.154l163.633 111.56-162.78 110.992c-23.37 15.284-50.412 23.699-76.17 23.699h-0.045zM640.078 840.841l-121.192 105.397-8.893-7.756-112.174-97.618c-52.573-42.065-85.586-109.047-91.409-182.363 4.628-2.65 9.223-5.356 13.715-8.29l198.898-135.612 199.774 136.181c4.128 2.729 8.449 5.243 12.748 7.733-5.845 73.316-38.927 140.241-91.466 182.329zM854.567 583.457c-25.781 0-52.835-8.415-75.329-23.119l-163.622-111.572 162.757-110.98c23.347-15.307 50.412-23.734 76.193-23.734 63.65 0 98.698 47.842 98.698 134.714-0 86.849-35.049 134.691-98.698 134.691z",
8 | "M390.984 604.381c-1.603 10.098-2.763 20.413-2.763 31.080 0 4.344 0.398 8.597 0.671 12.873h260.148c0.25-4.276 0.625-8.529 0.625-12.873 0-10.644-0.876-21.004-2.377-31.080h-256.304z",
9 | "M450.176 776.395l1.456 1.228 6.323 5.493h122.011l7.722-6.732c11.509-9.12 21.448-20.333 29.988-32.854h-197.454c8.552 12.543 18.457 23.768 29.954 32.865z"
10 | ],
11 | "attrs": [],
12 | "isMulticolor": false,
13 | "width": 1040,
14 | "grid": 0,
15 | "tags": [
16 | "beeminder"
17 | ]
18 | },
19 | "attrs": [],
20 | "properties": {
21 | "order": 7,
22 | "id": 0,
23 | "prevSize": 32,
24 | "code": 59648,
25 | "name": "beeminder"
26 | },
27 | "setIdx": 0,
28 | "setId": 5,
29 | "iconIdx": 0
30 | }
31 | ],
32 | "height": 1024,
33 | "metadata": {
34 | "name": "icomoon"
35 | },
36 | "preferences": {
37 | "showGlyphs": true,
38 | "showQuickUse": true,
39 | "showQuickUse2": true,
40 | "showSVGs": true,
41 | "fontPref": {
42 | "prefix": "icon-",
43 | "metadata": {
44 | "fontFamily": "icomoon"
45 | },
46 | "metrics": {
47 | "emSize": 1024,
48 | "baseline": 6.25,
49 | "whitespace": 50
50 | },
51 | "embed": false,
52 | "autoHost": false
53 | },
54 | "imagePref": {
55 | "prefix": "icon-",
56 | "png": true,
57 | "useClassSelector": true,
58 | "color": 0,
59 | "bgColor": 16777215,
60 | "classSelector": ".icon"
61 | },
62 | "historySize": 100,
63 | "showCodes": true,
64 | "gridSize": 16,
65 | "quickUsageToken": {
66 | "aaronpareckicom": "OTAwNWY0YTA2YmQxMDI0ZjNlMzRiMTI2M2NiYjgzOGQjMSMxNDU0Nzk3ODc1IyMj"
67 | }
68 | }
69 | }
--------------------------------------------------------------------------------
/templates/berlin/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | May 4 -5 , 2019
3 | Mozilla Berlin , GSG-Hof Schlesische Straße, Building 3, 3rd floor, Schlesische Straße 27 , Berlin , Germany
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
33 |
34 | Day 1 is about discussing in a BarCamp-like environment. Bring a topic you'd like to discuss or join in on topics as they are added to the board.
35 |
36 |
37 |
38 | 9:00 Organizer setup
39 | 9:30 Doors Open
40 | 10:30 Introduction
41 | 10:45 Keynote
42 | 11:00 Intros and Demos
43 | 11:45 Session Planning
44 | 12:00 Group photo & lunch break
45 | 13:15 Sessions
46 | 18:00 End of sessions for Day 1
47 |
48 |
49 |
50 |
51 |
55 |
56 | Day 2 is about implementing what we discussed. Work with others or on your own. We'll have demos at the end of the day to see what everyone worked on!
57 |
58 |
59 |
60 | 9:00 Organizer setup
61 | 10:00 Day 2 kick-off
62 | 10:30 Hack sessions
63 | 12:45 Lunch
64 | 14:00 Hack sessions continue
65 | 16:35 Demos
66 | 17:45 Clean-up
67 | 18:00 Camp closed
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | Schedule is subject to change. View the full schedule grid on the IndieWeb wiki for the latest updates.
76 |
77 |
78 |
--------------------------------------------------------------------------------
/public/webmention.php:
--------------------------------------------------------------------------------
1 |
20 |
21 |
22 |
Send a Webmention
23 |
28 |
29 | get($xrayBaseURL.'/parse?url='.urlencode($sourceURL).'&target='.urlencode($targetURL));
60 | $data = json_decode($response['body'], true);
61 |
62 | // XRay tells us if the URL didn't link to the target
63 | if(isset($data['error'])) {
64 | error($data['error_description']);
65 | }
66 |
67 | $source = $data['data'];
68 |
69 | if(!is_array($source)) {
70 | error("There was a problem parsing the source URL");
71 | }
72 |
73 | // Check the source for in-reply-to and rsvp properties
74 | if(!array_key_exists('in-reply-to', $source)) {
75 | error("Your post doesn't seem to have an in-reply-to property");
76 | }
77 |
78 | if(!in_array($targetURL, $source['in-reply-to'])) {
79 | error("It looks like your post does not have the event URL in the in-reply-to property");
80 | }
81 |
82 | if(!array_key_exists('rsvp', $source)) {
83 | error("Your post doesn't have an 'rsvp' property");
84 | }
85 |
86 | // Store the response data to disk so that it's rendered on the event page
87 | $folder = dirname(__FILE__).'/../data/'.$event.'/'.md5($sourceURL);
88 |
89 | if(strtolower($source['rsvp']) == 'yes') {
90 |
91 | @mkdir($folder);
92 |
93 | if($source['author']['photo']) {
94 | $tmp = tempnam(sys_get_temp_dir(), 'img');
95 | $img = $http->get($source['author']['photo']);
96 | if($img['body']) {
97 | file_put_contents($tmp, $img['body']);
98 | if(preg_match('/^<\?xml.+$/', trim($img['body']))) {
99 | $ext = 'svg';
100 | } else {
101 | $type = exif_imagetype($tmp);
102 | $ext = false;
103 | switch($type) {
104 | case IMAGETYPE_GIF:
105 | $ext = 'gif'; break;
106 | case IMAGETYPE_JPEG:
107 | $ext = 'jpg'; break;
108 | case IMAGETYPE_PNG:
109 | $ext = 'png'; break;
110 | case IMAGETYPE_ICO:
111 | $ext = 'ico'; break;
112 | }
113 | }
114 | if($ext) {
115 | copy($tmp, $folder . '/photo.'.$ext);
116 | }
117 | }
118 | }
119 |
120 | $filename = $folder . '/post.json';
121 | $data = [
122 | 'received' => date('c'),
123 | 'source' => $sourceURL,
124 | 'data' => $source
125 | ];
126 | file_put_contents($filename, json_encode($data));
127 |
128 | echo "Thanks! Your RSVP is listed on the event page now!\n";
129 | } else {
130 |
131 | if(file_exists($folder . '/post.json')) {
132 | unlink($folder . '/post.json');
133 | }
134 |
135 | echo "Thanks! Your RSVP was received, but you won't be listed on the event page because your RSVP was not \"yes\"\n";
136 | }
137 |
--------------------------------------------------------------------------------
/templates/austin/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | February 23 -24 , 2019
3 | Capital Factory , 701 Brazos St , Austin , Texas
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
33 |
34 | Day 1 starts with introductions, demos of personal sites, a review of the IndieWeb community and development building blocks, then BarCamp-style brainstorming and discussion sessions.
35 |
36 |
37 |
38 | 9:00 Doors open, coffee, and breakfast!
39 | 10:00 Welcome
40 | 10:15 Keynote: State of Social Readers
41 | 10:45 Personal site demos
42 | 11:30 Session proposals & scheduling
43 | 12:00 Group photo & lunch
44 | 13:00 Sessions (45min)
45 | 16:45 Day 2 preview
46 |
47 |
48 |
49 |
50 |
54 |
55 | Day 2 make things on and for your personal site! Collaborate with others or work on your own to improve at least one thing on your personal site, no matter how small or how epic.
56 |
57 |
58 |
59 | 9:00 Doors open, coffee, and breakfast!
60 | 10:00 Day 2 kickoff, session planning
61 | 10:30 Creating sessions
62 | 12:00 Group photo & lunch
63 | 13:00 Sessions continue
64 | 16:00 Demos
65 | 17:00 Camp closed!
66 |
67 |
68 |
69 |
70 |
71 |
93 |
94 |
--------------------------------------------------------------------------------
/lib/HTTP.php:
--------------------------------------------------------------------------------
1 | _set_curlopts($ch, $url);
11 | $response = curl_exec($ch);
12 | $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
13 | return array(
14 | 'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),
15 | 'headers' => self::parse_headers(trim(substr($response, 0, $header_size))),
16 | 'body' => substr($response, $header_size),
17 | 'error' => self::error_string_from_code(curl_errno($ch)),
18 | 'error_description' => curl_error($ch),
19 | 'error_code' => curl_errno($ch),
20 | 'url' => curl_getinfo($ch, CURLINFO_EFFECTIVE_URL),
21 | );
22 | }
23 |
24 | public function post($url, $body, $headers=array()) {
25 | $ch = curl_init($url);
26 | $this->_set_curlopts($ch, $url);
27 | curl_setopt($ch, CURLOPT_POST, true);
28 | curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
29 | curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
30 | $response = curl_exec($ch);
31 | $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
32 | return array(
33 | 'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),
34 | 'headers' => self::parse_headers(trim(substr($response, 0, $header_size))),
35 | 'body' => substr($response, $header_size),
36 | 'error' => self::error_string_from_code(curl_errno($ch)),
37 | 'error_description' => curl_error($ch),
38 | 'error_code' => curl_errno($ch),
39 | 'url' => curl_getinfo($ch, CURLINFO_EFFECTIVE_URL),
40 | );
41 | }
42 |
43 | public function head($url) {
44 | $ch = curl_init($url);
45 | $this->_set_curlopts($ch, $url);
46 | curl_setopt($ch, CURLOPT_NOBODY, true);
47 | $response = curl_exec($ch);
48 | return array(
49 | 'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),
50 | 'headers' => self::parse_headers(trim($response)),
51 | 'error' => self::error_string_from_code(curl_errno($ch)),
52 | 'error_description' => curl_error($ch),
53 | 'error_code' => curl_errno($ch),
54 | 'url' => curl_getinfo($ch, CURLINFO_EFFECTIVE_URL),
55 | );
56 | }
57 |
58 | private function _set_curlopts($ch, $url) {
59 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
60 | curl_setopt($ch, CURLOPT_HEADER, true);
61 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
62 | curl_setopt($ch, CURLOPT_MAXREDIRS, $this->max_redirects);
63 | curl_setopt($ch, CURLOPT_TIMEOUT_MS, round($this->timeout * 1000));
64 | }
65 |
66 | public static function error_string_from_code($code) {
67 | switch($code) {
68 | case 0:
69 | return '';
70 | case CURLE_COULDNT_RESOLVE_HOST:
71 | return 'dns_error';
72 | case CURLE_COULDNT_CONNECT:
73 | return 'connect_error';
74 | case CURLE_OPERATION_TIMEDOUT:
75 | return 'timeout';
76 | case CURLE_SSL_CONNECT_ERROR:
77 | return 'ssl_error';
78 | case CURLE_SSL_CERTPROBLEM:
79 | return 'ssl_cert_error';
80 | case CURLE_SSL_CIPHER:
81 | return 'ssl_unsupported_cipher';
82 | case CURLE_SSL_CACERT:
83 | return 'ssl_cert_error';
84 | case CURLE_TOO_MANY_REDIRECTS:
85 | return 'too_many_redirects';
86 | default:
87 | return 'unknown';
88 | }
89 | }
90 |
91 | public static function parse_headers($headers) {
92 | $retVal = array();
93 | $fields = explode("\r\n", preg_replace('/\x0D\x0A[\x09\x20]+/', ' ', $headers));
94 | foreach($fields as $field) {
95 | if(preg_match('/([^:]+): (.+)/m', $field, $match)) {
96 | $match[1] = preg_replace_callback('/(?<=^|[\x09\x20\x2D])./', function($m) {
97 | return strtoupper($m[0]);
98 | }, strtolower(trim($match[1])));
99 | // If there's already a value set for the header name being returned, turn it into an array and add the new value
100 | $match[1] = preg_replace_callback('/(?<=^|[\x09\x20\x2D])./', function($m) {
101 | return strtoupper($m[0]);
102 | }, strtolower(trim($match[1])));
103 | if(isset($retVal[$match[1]])) {
104 | if(!is_array($retVal[$match[1]]))
105 | $retVal[$match[1]] = array($retVal[$match[1]]);
106 | $retVal[$match[1]][] = $match[2];
107 | } else {
108 | $retVal[$match[1]] = trim($match[2]);
109 | }
110 | }
111 | }
112 | return $retVal;
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/templates/baltimore/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | January 20 -21 , 2018
3 | Digital Harbor Foundation Tech Center , 1045 Light St. , Baltimore , Maryland
4 |
5 |
6 |
7 |
8 |
12 |
13 | The Pre-Camp Meetup is an informal social meetup for IndieWebCamp participants to catch up and get to know each other before the camp.
14 |
15 |
16 |
17 | 19:00 Pre-Camp Meetup!
18 |
19 |
Joe Squared 33 W. North Ave.
20 |
Joe Squared is in Baltimore's Station North with great pizza, risotto, drink options, and more. Vegan and GF friendly.
21 |
22 | 21:00 IndieWeb-themed* Comedy Show
23 |
24 |
Baltimore Improv Group 1727 N. Charles St.
25 |
The Baltimore Improv Group (BIG) is a non-profit for improvisational theatre shows and instruction. Co-organizer Marty will be appearing in the evening's 9PM show.
26 |
27 |
28 |
29 |
33 |
34 | Day 1 starts with introductions, demos of personal sites, a review of the IndieWeb community and development building blocks, then BarCamp-style brainstorming and discussion sessions.
35 |
36 |
48 |
49 |
50 |
54 |
55 | Day 2 make things on and for your personal site! Collaborate with others or work on your own to improve at least one thing on your personal site, no matter how small or how epic.
56 |
57 |
58 |
59 | 9:00 Doors open, badges, coffee, and breakfast!
60 | 9:30 Day 2 kickoff & project intros
61 | 10:00 Start creating!
62 | 12:00 Group photo & lunch
63 | 13:00 Creating sessions continue
64 | 16:00 Demos
65 | 17:15 Camp closed!
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
95 |
96 |
--------------------------------------------------------------------------------
/templates/online/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | March 9 -10 , 2019
3 | Online
4 |
5 |
6 |
7 |
8 |
11 |
12 | For those wanting some general help getting prepared and set up for IndieWebCamp Online, you can
join us in the chat .
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
32 |
33 | Day 1 starts with introductions, demos of personal sites, a review of the IndieWeb community and development building blocks, then BarCamp-style brainstorming and discussion sessions.
34 |
35 |
43 |
44 |
45 |
49 |
50 | Day 2 make things on and for your personal site! Collaborate with others or work on your own to improve at least one thing on your personal site, no matter how small or how epic.
51 |
52 |
53 |
54 | 20:00 UTC March 9 Sessions Conclusion & Project Kickoff
55 | 21:00 UTC March 9 to 20:00 UTC March 10 Projects Time.Collaboration Rooms will be available throughout the Projects Time
56 | 20:00 UTC March 10 Projects Conclusion & Demos
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
86 |
87 |
--------------------------------------------------------------------------------
/get-tito-registrations.php:
--------------------------------------------------------------------------------
1 | token
16 | ]);
17 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
18 | $response = curl_exec($ch);
19 | return json_decode($response, true);
20 | }
21 |
22 | function normalize_url($url) {
23 | if($url == '') return $url;
24 | if(!preg_match('/^https?:\/\//', $url))
25 | return 'http://'.$url;
26 | return $url;
27 | }
28 |
29 | $registrations = get_tito($config->registrations);
30 |
31 | if(!file_exists(dirname(__FILE__).'/data/'.$event)) {
32 | mkdir(dirname(__FILE__).'/data/'.$event, 0755);
33 | }
34 |
35 | file_put_contents(dirname(__FILE__).'/data/'.$event.'/tito.json', json_encode($registrations, JSON_PRETTY_PRINT+JSON_UNESCAPED_SLASHES));
36 |
37 |
38 | $ticketData = [];
39 |
40 | foreach($registrations['data'] as $reg) {
41 | $timestamp = $reg['attributes']['completed-at'];
42 | $email = $reg['attributes']['email'];
43 |
44 | echo "======\n";
45 | $hash = md5(strtolower(trim($email)));
46 | echo $email . "\n";
47 | echo $hash . "\n";
48 |
49 | $dir = __DIR__.'/data/'.$event.'/'.$hash;
50 | @mkdir($dir, 0755);
51 |
52 |
53 | $website = false;
54 | $show = false;
55 | $attendance = [];
56 | $ticket_type = [];
57 |
58 | if(isset($reg['relationships']['tickets']['links']['related'])) {
59 | $ticket = get_tito($reg['relationships']['tickets']['links']['related']);
60 | if($ticket && isset($ticket['data'][0])) {
61 |
62 |
63 | $ticket = $ticket['data'][0];
64 | $name = $ticket['attributes']['name'];
65 | if(isset($ticket['attributes']['answers']) && is_array($ticket['attributes']['answers'])) {
66 | foreach($ticket['attributes']['answers'] as $question=>$answer) {
67 | if($question == 'your-personal-website')
68 | $website = normalize_url($answer);
69 | if($question == 'would-you-like-to-be-shown-on-the-public')
70 | $show = ($answer == 'Yes, show me on the guest list' ? 'yes' : 'no');
71 | if($question == 'would-you-like-to-be-seen-on-the-public') // for nyc
72 | $show = ($answer == 'Yes, show me on the guest list' ? 'yes' : 'no');
73 | if($question == 'event-attendance')
74 | $attendance = $answer;
75 | }
76 | }
77 |
78 | echo $name . "\n";
79 | echo $timestamp . "\n";
80 | echo $website . "\n";
81 | echo $show . "\n";
82 |
83 | file_put_contents($dir.'/ticket.json', json_encode($ticket, JSON_PRETTY_PRINT+JSON_UNESCAPED_SLASHES));
84 |
85 | $fn = $dir.'/photo.jpg';
86 | if(!file_exists($fn)) {
87 | // Try to download the profile photo from Gravatar
88 | $ch = curl_init('https://www.gravatar.com/avatar/'.$hash.'.jpg?d=404');
89 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
90 | curl_setopt($ch, CURLOPT_FAILONERROR, true);
91 | $imgdata = curl_exec($ch);
92 |
93 | if($imgdata) {
94 | echo "found gravatar\n";
95 | @mkdir($dir, 0755);
96 | file_put_contents($fn, $imgdata);
97 | } else {
98 | echo "no gravatar\n";
99 | }
100 | }
101 |
102 | // Fetch "Releases" to find out what type of ticket they registered for
103 | if(isset($ticket['relationships']['release']['links']['related'])) {
104 | $release = get_tito($ticket['relationships']['release']['links']['related']);
105 | file_put_contents($dir.'/release.json', json_encode($release, JSON_PRETTY_PRINT+JSON_UNESCAPED_SLASHES));
106 |
107 | if(isset($release['data']['attributes']['title'])) {
108 | $ticket_type[] = $release['data']['attributes']['title'];
109 | }
110 | }
111 |
112 | }
113 |
114 | $thisTicket = [
115 | 'name' => $name,
116 | 'website' => $website,
117 | 'email' => $email,
118 | 'timestamp' => $timestamp,
119 | 'show' => $show,
120 | 'attendance' => $attendance,
121 | 'ticket_type' => $ticket_type,
122 | ];
123 |
124 | $ticketData[] = $thisTicket;
125 |
126 | file_put_contents($dir.'/summary.json', json_encode($thisTicket, JSON_PRETTY_PRINT+JSON_UNESCAPED_SLASHES));
127 |
128 | }
129 |
130 | }
131 |
132 | file_put_contents(dirname(__FILE__).'/data/'.$event.'/tickets.json', json_encode($ticketData, JSON_PRETTY_PRINT));
133 |
134 |
--------------------------------------------------------------------------------
/templates/newhaven/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | March 30 -31 , 2019
3 | Davis Hall, Southern Coneccticut State University , 501 Crescent Street , New Haven , CT
4 | Schedule
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
63 |
64 |
65 |
66 |
67 |
68 |
75 |
76 |
98 |
99 |
--------------------------------------------------------------------------------
/public/semantic/components/dimmer.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Dimmer
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Dimmer
15 | *******************************/
16 |
17 | .dimmable {
18 | position: relative;
19 | }
20 | .ui.dimmer {
21 | display: none;
22 | position: absolute;
23 | top: 0em !important;
24 | left: 0em !important;
25 | width: 100%;
26 | height: 100%;
27 | text-align: center;
28 | vertical-align: middle;
29 | background-color: rgba(0, 0, 0, 0.85);
30 | opacity: 0;
31 | line-height: 1;
32 | -webkit-animation-fill-mode: both;
33 | animation-fill-mode: both;
34 | -webkit-animation-duration: 0.5s;
35 | animation-duration: 0.5s;
36 | -webkit-transition: background-color 0.5s linear;
37 | transition: background-color 0.5s linear;
38 | -webkit-user-select: none;
39 | -moz-user-select: none;
40 | -ms-user-select: none;
41 | user-select: none;
42 | will-change: opacity;
43 | z-index: 1000;
44 | }
45 |
46 | /* Dimmer Content */
47 | .ui.dimmer > .content {
48 | width: 100%;
49 | height: 100%;
50 | display: table;
51 | -webkit-user-select: text;
52 | -moz-user-select: text;
53 | -ms-user-select: text;
54 | user-select: text;
55 | }
56 | .ui.dimmer > .content > * {
57 | display: table-cell;
58 | vertical-align: middle;
59 | color: #ffffff;
60 | }
61 |
62 | /* Loose Coupling */
63 | .ui.segment > .ui.dimmer {
64 | border-radius: inherit !important;
65 | }
66 |
67 |
68 | /*******************************
69 | States
70 | *******************************/
71 |
72 | .animating.dimmable:not(body),
73 | .dimmed.dimmable:not(body) {
74 | overflow: hidden;
75 | }
76 | .dimmed.dimmable > .ui.animating.dimmer,
77 | .dimmed.dimmable > .ui.visible.dimmer,
78 | .ui.active.dimmer {
79 | display: block;
80 | opacity: 1;
81 | }
82 | .ui.disabled.dimmer {
83 | width: 0 !important;
84 | height: 0 !important;
85 | }
86 |
87 |
88 | /*******************************
89 | Variations
90 | *******************************/
91 |
92 |
93 | /*--------------
94 | Page
95 | ---------------*/
96 |
97 | .ui.page.dimmer {
98 | position: fixed;
99 | -webkit-transform-style: '';
100 | transform-style: '';
101 | -webkit-perspective: 2000px;
102 | perspective: 2000px;
103 | -webkit-transform-origin: center center;
104 | -ms-transform-origin: center center;
105 | transform-origin: center center;
106 | }
107 | body.animating.in.dimmable,
108 | body.dimmed.dimmable {
109 | overflow: hidden;
110 | }
111 | body.dimmable > .dimmer {
112 | position: fixed;
113 | }
114 |
115 | /*--------------
116 | Blurring
117 | ---------------*/
118 |
119 | .blurring.dimmable > :not(.dimmer) {
120 | -webkit-filter: blur(0px) grayscale(0);
121 | filter: blur(0px) grayscale(0);
122 | -webkit-transition: 800ms -webkit-filter ease, 800ms filter ease;
123 | transition: 800ms filter ease;
124 | }
125 | .blurring.dimmed.dimmable > :not(.dimmer) {
126 | -webkit-filter: blur(5px) grayscale(0.7);
127 | filter: blur(5px) grayscale(0.7);
128 | }
129 |
130 | /* Dimmer Color */
131 | .blurring.dimmable > .dimmer {
132 | background-color: rgba(0, 0, 0, 0.6);
133 | }
134 | .blurring.dimmable > .inverted.dimmer {
135 | background-color: rgba(255, 255, 255, 0.6);
136 | }
137 |
138 | /*--------------
139 | Aligned
140 | ---------------*/
141 |
142 | .ui.dimmer > .top.aligned.content > * {
143 | vertical-align: top;
144 | }
145 | .ui.dimmer > .bottom.aligned.content > * {
146 | vertical-align: bottom;
147 | }
148 |
149 | /*--------------
150 | Inverted
151 | ---------------*/
152 |
153 | .ui.inverted.dimmer {
154 | background-color: rgba(255, 255, 255, 0.85);
155 | }
156 | .ui.inverted.dimmer > .content > * {
157 | color: #ffffff;
158 | }
159 |
160 | /*--------------
161 | Simple
162 | ---------------*/
163 |
164 |
165 | /* Displays without javascript */
166 | .ui.simple.dimmer {
167 | display: block;
168 | overflow: hidden;
169 | opacity: 1;
170 | width: 0%;
171 | height: 0%;
172 | z-index: -100;
173 | background-color: rgba(0, 0, 0, 0);
174 | }
175 | .dimmed.dimmable > .ui.simple.dimmer {
176 | overflow: visible;
177 | opacity: 1;
178 | width: 100%;
179 | height: 100%;
180 | background-color: rgba(0, 0, 0, 0.85);
181 | z-index: 1;
182 | }
183 | .ui.simple.inverted.dimmer {
184 | background-color: rgba(255, 255, 255, 0);
185 | }
186 | .dimmed.dimmable > .ui.simple.inverted.dimmer {
187 | background-color: rgba(255, 255, 255, 0.85);
188 | }
189 |
190 |
191 | /*******************************
192 | Theme Overrides
193 | *******************************/
194 |
195 |
196 |
197 | /*******************************
198 | User Overrides
199 | *******************************/
200 |
201 |
--------------------------------------------------------------------------------
/public/semantic/components/rating.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Rating
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,n,t,i){"use strict";e.fn.rating=function(n){var t,a=e(this),o=a.selector||"",r=(new Date).getTime(),s=[],l=arguments[0],c="string"==typeof l,u=[].slice.call(arguments,1);return a.each(function(){var g,m=e.isPlainObject(n)?e.extend(!0,{},e.fn.rating.settings,n):e.extend({},e.fn.rating.settings),d=m.namespace,f=m.className,v=m.metadata,p=m.selector,b=(m.error,"."+d),h="module-"+d,y=this,x=e(this).data(h),R=e(this),C=R.find(p.icon);g={initialize:function(){g.verbose("Initializing rating module",m),0===C.length&&g.setup.layout(),m.interactive?g.enable():g.disable(),g.set.rating(g.get.initialRating()),g.instantiate()},instantiate:function(){g.verbose("Instantiating module",m),x=g,R.data(h,g)},destroy:function(){g.verbose("Destroying previous instance",x),g.remove.events(),R.removeData(h)},refresh:function(){C=R.find(p.icon)},setup:{layout:function(){var n=g.get.maxRating(),t=e.fn.rating.settings.templates.icon(n);g.debug("Generating icon html dynamically"),R.html(t),g.refresh()}},event:{mouseenter:function(){var n=e(this);n.nextAll().removeClass(f.selected),R.addClass(f.selected),n.addClass(f.selected).prevAll().addClass(f.selected)},mouseleave:function(){R.removeClass(f.selected),C.removeClass(f.selected)},click:function(){var n=e(this),t=g.get.rating(),i=C.index(n)+1,a="auto"==m.clearable?1===C.length:m.clearable;a&&t==i?g.clearRating():g.set.rating(i)}},clearRating:function(){g.debug("Clearing current rating"),g.set.rating(0)},bind:{events:function(){g.verbose("Binding events"),R.on("mouseenter"+b,p.icon,g.event.mouseenter).on("mouseleave"+b,p.icon,g.event.mouseleave).on("click"+b,p.icon,g.event.click)}},remove:{events:function(){g.verbose("Removing events"),R.off(b)}},enable:function(){g.debug("Setting rating to interactive mode"),g.bind.events(),R.removeClass(f.disabled)},disable:function(){g.debug("Setting rating to read-only mode"),g.remove.events(),R.addClass(f.disabled)},get:{initialRating:function(){return R.data(v.rating)!==i?(R.removeData(v.rating),R.data(v.rating)):m.initialRating},maxRating:function(){return R.data(v.maxRating)!==i?(R.removeData(v.maxRating),R.data(v.maxRating)):m.maxRating},rating:function(){var e=C.filter("."+f.active).length;return g.verbose("Current rating retrieved",e),e}},set:{rating:function(e){var n=e-1>=0?e-1:0,t=C.eq(n);R.removeClass(f.selected),C.removeClass(f.selected).removeClass(f.active),e>0&&(g.verbose("Setting current rating to",e),t.prevAll().andSelf().addClass(f.active)),m.onRate.call(y,e)}},setting:function(n,t){if(g.debug("Changing setting",n,t),e.isPlainObject(n))e.extend(!0,m,n);else{if(t===i)return m[n];m[n]=t}},internal:function(n,t){if(e.isPlainObject(n))e.extend(!0,g,n);else{if(t===i)return g[n];g[n]=t}},debug:function(){m.debug&&(m.performance?g.performance.log(arguments):(g.debug=Function.prototype.bind.call(console.info,console,m.name+":"),g.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?g.performance.log(arguments):(g.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),g.verbose.apply(console,arguments)))},error:function(){g.error=Function.prototype.bind.call(console.error,console,m.name+":"),g.error.apply(console,arguments)},performance:{log:function(e){var n,t,i;m.performance&&(n=(new Date).getTime(),i=r||n,t=n-i,r=n,s.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:y,"Execution Time":t})),clearTimeout(g.performance.timer),g.performance.timer=setTimeout(g.performance.display,500)},display:function(){var n=m.name+":",t=0;r=!1,clearTimeout(g.performance.timer),e.each(s,function(e,n){t+=n["Execution Time"]}),n+=" "+t+"ms",o&&(n+=" '"+o+"'"),a.length>1&&(n+=" ("+a.length+")"),(console.group!==i||console.table!==i)&&s.length>0&&(console.groupCollapsed(n),console.table?console.table(s):e.each(s,function(e,n){console.log(n.Name+": "+n["Execution Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(n,a,o){var r,s,l,c=x;return a=a||u,o=y||o,"string"==typeof n&&c!==i&&(n=n.split(/[\. ]/),r=n.length-1,e.each(n,function(t,a){var o=t!=r?a+n[t+1].charAt(0).toUpperCase()+n[t+1].slice(1):n;if(e.isPlainObject(c[o])&&t!=r)c=c[o];else{if(c[o]!==i)return s=c[o],!1;if(!e.isPlainObject(c[a])||t==r)return c[a]!==i?(s=c[a],!1):!1;c=c[a]}})),e.isFunction(s)?l=s.apply(o,a):s!==i&&(l=s),e.isArray(t)?t.push(l):t!==i?t=[t,l]:l!==i&&(t=l),s}},c?(x===i&&g.initialize(),g.invoke(l)):(x!==i&&x.invoke("destroy"),g.initialize())}),t!==i?t:this},e.fn.rating.settings={name:"Rating",namespace:"rating",debug:!1,verbose:!1,performance:!0,initialRating:0,interactive:!0,maxRating:4,clearable:"auto",onRate:function(e){},error:{method:"The method you called is not defined",noMaximum:"No maximum rating specified. Cannot generate HTML automatically"},metadata:{rating:"rating",maxRating:"maxRating"},className:{active:"active",disabled:"disabled",selected:"selected",loading:"loading"},selector:{icon:".icon"},templates:{icon:function(e){for(var n=1,t="";e>=n;)t+=' ',n++;return t}}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/public/semantic/components/nag.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Nag
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,o,n,t){"use strict";e.fn.nag=function(n){var i,a=e(this),r=a.selector||"",s=(new Date).getTime(),c=[],l=arguments[0],u="string"==typeof l,g=[].slice.call(arguments,1);return a.each(function(){{var a,d=e.isPlainObject(n)?e.extend(!0,{},e.fn.nag.settings,n):e.extend({},e.fn.nag.settings),m=(d.className,d.selector),f=d.error,p=d.namespace,h="."+p,b=p+"-module",v=e(this),y=(v.find(m.close),e(d.context?d.context:"body")),k=this,w=v.data(b);o.requestAnimationFrame||o.mozRequestAnimationFrame||o.webkitRequestAnimationFrame||o.msRequestAnimationFrame||function(e){setTimeout(e,0)}}a={initialize:function(){a.verbose("Initializing element"),v.on("click"+h,m.close,a.dismiss).data(b,a),d.detachable&&v.parent()[0]!==y[0]&&v.detach().prependTo(y),d.displayTime>0&&setTimeout(a.hide,d.displayTime),a.show()},destroy:function(){a.verbose("Destroying instance"),v.removeData(b).off(h)},show:function(){a.should.show()&&!v.is(":visible")&&(a.debug("Showing nag",d.animation.show),"fade"==d.animation.show?v.fadeIn(d.duration,d.easing):v.slideDown(d.duration,d.easing))},hide:function(){a.debug("Showing nag",d.animation.hide),"fade"==d.animation.show?v.fadeIn(d.duration,d.easing):v.slideUp(d.duration,d.easing)},onHide:function(){a.debug("Removing nag",d.animation.hide),v.remove(),d.onHide&&d.onHide()},dismiss:function(e){d.storageMethod&&a.storage.set(d.key,d.value),a.hide(),e.stopImmediatePropagation(),e.preventDefault()},should:{show:function(){return d.persist?(a.debug("Persistent nag is set, can show nag"),!0):a.storage.get(d.key)!=d.value.toString()?(a.debug("Stored value is not set, can show nag",a.storage.get(d.key)),!0):(a.debug("Stored value is set, cannot show nag",a.storage.get(d.key)),!1)}},get:{storageOptions:function(){var e={};return d.expires&&(e.expires=d.expires),d.domain&&(e.domain=d.domain),d.path&&(e.path=d.path),e}},clear:function(){a.storage.remove(d.key)},storage:{set:function(n,i){var r=a.get.storageOptions();if("localstorage"==d.storageMethod&&o.localStorage!==t)o.localStorage.setItem(n,i),a.debug("Value stored using local storage",n,i);else{if(e.cookie===t)return void a.error(f.noCookieStorage);e.cookie(n,i,r),a.debug("Value stored using cookie",n,i,r)}},get:function(n,i){var r;return"localstorage"==d.storageMethod&&o.localStorage!==t?r=o.localStorage.getItem(n):e.cookie!==t?r=e.cookie(n):a.error(f.noCookieStorage),("undefined"==r||"null"==r||r===t||null===r)&&(r=t),r},remove:function(n){var i=a.get.storageOptions();"local"==d.storageMethod&&o.store!==t?o.localStorage.removeItem(n):e.cookie!==t?e.removeCookie(n,i):a.error(f.noStorage)}},setting:function(o,n){if(a.debug("Changing setting",o,n),e.isPlainObject(o))e.extend(!0,d,o);else{if(n===t)return d[o];d[o]=n}},internal:function(o,n){if(e.isPlainObject(o))e.extend(!0,a,o);else{if(n===t)return a[o];a[o]=n}},debug:function(){d.debug&&(d.performance?a.performance.log(arguments):(a.debug=Function.prototype.bind.call(console.info,console,d.name+":"),a.debug.apply(console,arguments)))},verbose:function(){d.verbose&&d.debug&&(d.performance?a.performance.log(arguments):(a.verbose=Function.prototype.bind.call(console.info,console,d.name+":"),a.verbose.apply(console,arguments)))},error:function(){a.error=Function.prototype.bind.call(console.error,console,d.name+":"),a.error.apply(console,arguments)},performance:{log:function(e){var o,n,t;d.performance&&(o=(new Date).getTime(),t=s||o,n=o-t,s=o,c.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:k,"Execution Time":n})),clearTimeout(a.performance.timer),a.performance.timer=setTimeout(a.performance.display,500)},display:function(){var o=d.name+":",n=0;s=!1,clearTimeout(a.performance.timer),e.each(c,function(e,o){n+=o["Execution Time"]}),o+=" "+n+"ms",r&&(o+=" '"+r+"'"),(console.group!==t||console.table!==t)&&c.length>0&&(console.groupCollapsed(o),console.table?console.table(c):e.each(c,function(e,o){console.log(o.Name+": "+o["Execution Time"]+"ms")}),console.groupEnd()),c=[]}},invoke:function(o,n,r){var s,c,l,u=w;return n=n||g,r=k||r,"string"==typeof o&&u!==t&&(o=o.split(/[\. ]/),s=o.length-1,e.each(o,function(n,i){var r=n!=s?i+o[n+1].charAt(0).toUpperCase()+o[n+1].slice(1):o;if(e.isPlainObject(u[r])&&n!=s)u=u[r];else{if(u[r]!==t)return c=u[r],!1;if(!e.isPlainObject(u[i])||n==s)return u[i]!==t?(c=u[i],!1):(a.error(f.method,o),!1);u=u[i]}})),e.isFunction(c)?l=c.apply(r,n):c!==t&&(l=c),e.isArray(i)?i.push(l):i!==t?i=[i,l]:l!==t&&(i=l),c}},u?(w===t&&a.initialize(),a.invoke(l)):(w!==t&&w.invoke("destroy"),a.initialize())}),i!==t?i:this},e.fn.nag.settings={name:"Nag",debug:!1,verbose:!1,performance:!0,namespace:"Nag",persist:!1,displayTime:0,animation:{show:"slide",hide:"slide"},context:!1,detachable:!1,expires:30,domain:!1,path:"/",storageMethod:"cookie",key:"nag",value:"dismiss",error:{noCookieStorage:"$.cookie is not included. A storage solution is required.",noStorage:"Neither $.cookie or store is defined. A storage solution is required for storing state",method:"The method you called is not defined."},className:{bottom:"bottom",fixed:"fixed"},selector:{close:".close.icon"},speed:500,easing:"easeOutQuad",onHide:function(){}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/public/semantic/components/search.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Search
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.search{position:relative}.ui.search>.prompt{margin:0;outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.2142em;padding:.67861429em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:0 0 0 0 transparent inset;-webkit-transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease;transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;-webkit-transform-origin:center top;-ms-transform-origin:center top;transform-origin:center top;background:#fff;margin-top:.5em;width:18em;border-radius:.28571429rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.08);border:1px solid #d4d4d5;z-index:998}.ui.search>.results>:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.search>.results>:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.85714286em 1.14285714em;color:rgba(0,0,0,.87);line-height:1.33;border-bottom:1px solid rgba(34,36,38,.1)}.ui.search>.results .result:last-child{border-bottom:none!important}.ui.search>.results .result .image{float:right;overflow:hidden;background:0 0;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{margin:-.14285em 0 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.92857143em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#21ba45}.ui.search>.results>.message{padding:1em}.ui.search>.results>.message .header{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1rem;font-weight:700;color:rgba(0,0,0,.87)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.87)}.ui.search>.results>.action{display:block;border-top:none;background:#f3f4f5;padding:.92857143em 1em;color:rgba(0,0,0,.87);font-weight:700;text-align:center}.ui.search>.prompt:focus{border-color:rgba(34,36,38,.35);background:#fff;color:rgba(0,0,0,.95)}.ui.loading.search .input>i.icon:before{position:absolute;content:'';top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>i.icon:after{position:absolute;content:'';top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#f9fafb}.ui.search .action:hover{background:#e0e0e0}.ui.category.search>.results .category.active{background:#f3f4f5}.ui.category.search>.results .category.active>.name{color:rgba(0,0,0,.87)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:rgba(34,36,38,.1);background:#f3f4f5;box-shadow:none}.ui.search>.results .result.active .description,.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.category.search .results{width:28em}.ui.category.search>.results .category{background:#f3f4f5;box-shadow:none;border-bottom:1px solid rgba(34,36,38,.1);-webkit-transition:background .1s ease,border-color .1s ease;transition:background .1s ease,border-color .1s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category:first-child .name+.result{border-radius:0 .28571429rem 0 0}.ui.category.search>.results .category .result{background:#fff;margin-left:100px;border-left:1px solid rgba(34,36,38,.15);border-bottom:1px solid rgba(34,36,38,.1);-webkit-transition:background .1s ease,border-color .1s ease;transition:background .1s ease,border-color .1s ease;padding:.85714286em 1.14285714em}.ui.category.search>.results .category:last-child .result:last-child{border-radius:0 0 .28571429rem;border-bottom:none}.ui.category.search>.results .category>.name{width:100px;background:0 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1em;float:1em;float:left;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4)}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.mini.search{font-size:.71428571em}.ui.small.search{font-size:.92857143em}.ui.search{font-size:1em}.ui.large.search{font-size:1.14285714em}.ui.big.search{font-size:1.28571429em}.ui.huge.search{font-size:1.42857143em}.ui.massive.search{font-size:1.71428571em}
--------------------------------------------------------------------------------
/public/semantic/components/ad.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Ad
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2013 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Advertisement
15 | *******************************/
16 |
17 | .ui.ad {
18 | display: block;
19 | overflow: hidden;
20 | margin: 1em 0em;
21 | }
22 | .ui.ad:first-child {
23 | margin: 0em;
24 | }
25 | .ui.ad:last-child {
26 | margin: 0em;
27 | }
28 | .ui.ad iframe {
29 | margin: 0em;
30 | padding: 0em;
31 | border: none;
32 | overflow: hidden;
33 | }
34 |
35 | /*--------------
36 | Common
37 | ---------------*/
38 |
39 |
40 | /* Leaderboard */
41 | .ui.leaderboard.ad {
42 | width: 728px;
43 | height: 90px;
44 | }
45 |
46 | /* Medium Rectangle */
47 | .ui[class*="medium rectangle"].ad {
48 | width: 300px;
49 | height: 250px;
50 | }
51 |
52 | /* Large Rectangle */
53 | .ui[class*="large rectangle"].ad {
54 | width: 336px;
55 | height: 280px;
56 | }
57 |
58 | /* Half Page */
59 | .ui[class*="half page"].ad {
60 | width: 300px;
61 | height: 600px;
62 | }
63 |
64 | /*--------------
65 | Square
66 | ---------------*/
67 |
68 |
69 | /* Square */
70 | .ui.square.ad {
71 | width: 250px;
72 | height: 250px;
73 | }
74 |
75 | /* Small Square */
76 | .ui[class*="small square"].ad {
77 | width: 200px;
78 | height: 200px;
79 | }
80 |
81 | /*--------------
82 | Rectangle
83 | ---------------*/
84 |
85 |
86 | /* Small Rectangle */
87 | .ui[class*="small rectangle"].ad {
88 | width: 180px;
89 | height: 150px;
90 | }
91 |
92 | /* Vertical Rectangle */
93 | .ui[class*="vertical rectangle"].ad {
94 | width: 240px;
95 | height: 400px;
96 | }
97 |
98 | /*--------------
99 | Button
100 | ---------------*/
101 |
102 | .ui.button.ad {
103 | width: 120px;
104 | height: 90px;
105 | }
106 | .ui[class*="square button"].ad {
107 | width: 125px;
108 | height: 125px;
109 | }
110 | .ui[class*="small button"].ad {
111 | width: 120px;
112 | height: 60px;
113 | }
114 |
115 | /*--------------
116 | Skyscrapers
117 | ---------------*/
118 |
119 |
120 | /* Skyscraper */
121 | .ui.skyscraper.ad {
122 | width: 120px;
123 | height: 600px;
124 | }
125 |
126 | /* Wide Skyscraper */
127 | .ui[class*="wide skyscraper"].ad {
128 | width: 160px;
129 | }
130 |
131 | /*--------------
132 | Banners
133 | ---------------*/
134 |
135 |
136 | /* Banner */
137 | .ui.banner.ad {
138 | width: 468px;
139 | height: 60px;
140 | }
141 |
142 | /* Vertical Banner */
143 | .ui[class*="vertical banner"].ad {
144 | width: 120px;
145 | height: 240px;
146 | }
147 |
148 | /* Top Banner */
149 | .ui[class*="top banner"].ad {
150 | width: 930px;
151 | height: 180px;
152 | }
153 |
154 | /* Half Banner */
155 | .ui[class*="half banner"].ad {
156 | width: 234px;
157 | height: 60px;
158 | }
159 |
160 | /*--------------
161 | Boards
162 | ---------------*/
163 |
164 |
165 | /* Leaderboard */
166 | .ui[class*="large leaderboard"].ad {
167 | width: 970px;
168 | height: 90px;
169 | }
170 |
171 | /* Billboard */
172 | .ui.billboard.ad {
173 | width: 970px;
174 | height: 250px;
175 | }
176 |
177 | /*--------------
178 | Panorama
179 | ---------------*/
180 |
181 |
182 | /* Panorama */
183 | .ui.panorama.ad {
184 | width: 980px;
185 | height: 120px;
186 | }
187 |
188 | /*--------------
189 | Netboard
190 | ---------------*/
191 |
192 |
193 | /* Netboard */
194 | .ui.netboard.ad {
195 | width: 580px;
196 | height: 400px;
197 | }
198 |
199 | /*--------------
200 | Mobile
201 | ---------------*/
202 |
203 |
204 | /* Large Mobile Banner */
205 | .ui[class*="large mobile banner"].ad {
206 | width: 320px;
207 | height: 100px;
208 | }
209 |
210 | /* Mobile Leaderboard */
211 | .ui[class*="mobile leaderboard"].ad {
212 | width: 320px;
213 | height: 50px;
214 | }
215 |
216 |
217 | /*******************************
218 | Types
219 | *******************************/
220 |
221 |
222 | /* Mobile Sizes */
223 | .ui.mobile.ad {
224 | display: none;
225 | }
226 | @media only screen and (max-width: 767px) {
227 | .ui.mobile.ad {
228 | display: block;
229 | }
230 | }
231 |
232 |
233 | /*******************************
234 | Variations
235 | *******************************/
236 |
237 | .ui.centered.ad {
238 | margin-left: auto;
239 | margin-right: auto;
240 | }
241 | .ui.test.ad {
242 | position: relative;
243 | background: #545454;
244 | }
245 | .ui.test.ad:after {
246 | position: absolute;
247 | top: 50%;
248 | left: 50%;
249 | width: 100%;
250 | text-align: center;
251 | -webkit-transform: translateX(-50%) translateY(-50%);
252 | -ms-transform: translateX(-50%) translateY(-50%);
253 | transform: translateX(-50%) translateY(-50%);
254 | content: 'Ad';
255 | color: #ffffff;
256 | font-size: 1em;
257 | font-weight: bold;
258 | }
259 | .ui.mobile.test.ad:after {
260 | font-size: 0.85714286em;
261 | }
262 | .ui.test.ad[data-text]:after {
263 | content: attr(data-text);
264 | }
265 |
266 |
267 | /*******************************
268 | Theme Overrides
269 | *******************************/
270 |
271 |
272 |
273 | /*******************************
274 | User Variable Overrides
275 | *******************************/
276 |
277 |
--------------------------------------------------------------------------------
/templates/berlin2/schedule.php:
--------------------------------------------------------------------------------
1 |
2 | November 23 -24 , 2019
3 | Mozilla Berlin , GSG-Hof Schlesische Straße, Building 3, 3rd floor, Schlesische Straße 27 , Berlin , Germany
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
33 |
34 | Day 1 is about discussing in a BarCamp-like environment. Bring a topic you'd like to discuss or join in on topics as they are added to the board.
35 |
36 |
37 |
38 | 9:00 Organizer setup
39 | 9:30 Doors Open
40 | 10:00 Introduction
41 | 10:15 Keynotes
42 | 11:00 Intros and Demos
43 | 11:45 Session Planning
44 | 12:00 Group photo & lunch break
45 | 13:15 Sessions
46 | 18:00 End of sessions for Day 1
47 |
48 |
49 |
50 |
51 |
55 |
56 | Day 2 is about implementing what we discussed. Work with others or on your own. We'll have demos at the end of the day to see what everyone worked on!
57 |
58 |
59 |
60 | 9:00 Organizer setup
61 | 9:30 Doors Open
62 | 10:00 Day 2 kick-off
63 | 10:30 Hack sessions
64 | 12:45 Lunch
65 | 14:00 Hack sessions continue
66 | 16:00 Demos
67 | 17:15 Clean-up
68 | 17:30 Camp closed
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | Schedule is subject to change. View the full schedule grid on the IndieWeb wiki for the latest updates.
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
Teresa Ingram
85 |
Towards A More Civil & Thoughtful Social Web
86 |
87 |
88 |
89 |
Yulia Startsev
90 |
My First IndieWebCamp
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
Yulia Startsev
99 |
100 |
101 |
102 |
Tantek Çelik
103 |
104 |
105 |
106 |
Rosemary Orchard
107 |
108 |
109 |
--------------------------------------------------------------------------------
/public/semantic/components/item.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Item
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.items>.item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em 0;width:100%;min-height:0;background:0 0;padding:0;border:none;border-radius:0;box-shadow:none;-webkit-transition:box-shadow .1s ease;transition:box-shadow .1s ease;z-index:''}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:'';-webkit-align-self:top;-ms-flex-item-align:top;align-self:top}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;background:0 0;margin:0;padding:0;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;-webkit-align-self:top;-ms-flex-item-align:top;align-self:top;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{-webkit-align-self:middle;-ms-flex-item-align:middle;align-self:middle;width:''}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:'';height:'';border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:auto;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:'';-webkit-transition:color .1s ease;transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:''}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#1e70bf}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;-webkit-transition:color .1s ease;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;-webkit-transition:color .1s ease;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:0 0;margin:.5rem 0 0;width:100%;padding:0;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;-webkit-transition:color .1s ease;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767px){.ui.items>.item{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:2em 0}.ui.items>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items>.item>.image,.ui.items>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{-webkit-align-self:top;-ms-flex-item-align:top;align-self:top}.ui.items>.item>.image+[class*="middle aligned"].content{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{-webkit-align-self:bottom;-ms-flex-item-align:bottom;align-self:bottom}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid rgba(34,36,38,.15);margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#1e70bf}.ui.items>.item{font-size:1em}
--------------------------------------------------------------------------------
/public/semantic/components/visit.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Visit
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,t,i,n){"use strict";e.visit=e.fn.visit=function(i){var o,r=e(e.isFunction(this)?t:this),s=r.selector||"",a=(new Date).getTime(),c=[],u=arguments[0],l="string"==typeof u,d=[].slice.call(arguments,1);return r.each(function(){var g,m=e.isPlainObject(i)?e.extend(!0,{},e.fn.visit.settings,i):e.extend({},e.fn.visit.settings),f=m.error,p=m.namespace,v=p+"-module",h=e(this),b=e(),y=this,k=h.data(v);g={initialize:function(){m.count?g.store(m.key.count,m.count):m.id?g.add.id(m.id):m.increment&&"increment"!==l&&g.increment(),g.add.display(h),g.instantiate()},instantiate:function(){g.verbose("Storing instance of visit module",g),k=g,h.data(v,g)},destroy:function(){g.verbose("Destroying instance"),h.removeData(v)},increment:function(e){var t=g.get.count(),i=+t+1;e?g.add.id(e):(i>m.limit&&!m.surpass&&(i=m.limit),g.debug("Incrementing visits",i),g.store(m.key.count,i))},decrement:function(e){var t=g.get.count(),i=+t-1;e?g.remove.id(e):(g.debug("Removing visit"),g.store(m.key.count,i))},get:{count:function(){return+g.retrieve(m.key.count)||0},idCount:function(e){return e=e||g.get.ids(),e.length},ids:function(e){var t=[];return e=e||g.retrieve(m.key.ids),"string"==typeof e&&(t=e.split(m.delimiter)),g.verbose("Found visited ID list",t),t},storageOptions:function(e){var t={};return m.expires&&(t.expires=m.expires),m.domain&&(t.domain=m.domain),m.path&&(t.path=m.path),t}},has:{visited:function(t,i){var o=!1;return i=i||g.get.ids(),t!==n&&i&&e.each(i,function(e,i){i==t&&(o=!0)}),o}},set:{count:function(e){g.store(m.key.count,e)},ids:function(e){g.store(m.key.ids,e)}},reset:function(){g.store(m.key.count,0),g.store(m.key.ids,null)},add:{id:function(e){var t=g.retrieve(m.key.ids),i=t===n||""===t?e:t+m.delimiter+e;g.has.visited(e)?g.debug("Unique content already visited, not adding visit",e,t):e===n?g.debug("ID is not defined"):(g.debug("Adding visit to unique content",e),g.store(m.key.ids,i)),g.set.count(g.get.idCount())},display:function(t){var i=e(t);i.length>0&&!e.isWindow(i[0])&&(g.debug("Updating visit count for element",i),b=b.length>0?b.add(i):i)}},remove:{id:function(t){var i=g.get.ids(),o=[];t!==n&&i!==n&&(g.debug("Removing visit to unique content",t,i),e.each(i,function(e,i){i!==t&&o.push(i)}),o=o.join(m.delimiter),g.store(m.key.ids,o)),g.set.count(g.get.idCount())}},check:{limit:function(e){e=e||g.get.count(),m.limit&&(e>=m.limit&&(g.debug("Pages viewed exceeded limit, firing callback",e,m.limit),m.onLimit.call(y,e)),g.debug("Limit not reached",e,m.limit),m.onChange.call(y,e)),g.update.display(e)}},update:{display:function(e){e=e||g.get.count(),b.length>0&&(g.debug("Updating displayed view count",b),b.html(e))}},store:function(i,o){var r=g.get.storageOptions(o);if("localstorage"==m.storageMethod&&t.localStorage!==n)t.localStorage.setItem(i,o),g.debug("Value stored using local storage",i,o);else{if(e.cookie===n)return void g.error(f.noCookieStorage);e.cookie(i,o,r),g.debug("Value stored using cookie",i,o,r)}i==m.key.count&&g.check.limit(o)},retrieve:function(i,o){var r;return"localstorage"==m.storageMethod&&t.localStorage!==n?r=t.localStorage.getItem(i):e.cookie!==n?r=e.cookie(i):g.error(f.noCookieStorage),("undefined"==r||"null"==r||r===n||null===r)&&(r=n),r},setting:function(t,i){if(e.isPlainObject(t))e.extend(!0,m,t);else{if(i===n)return m[t];m[t]=i}},internal:function(t,i){return g.debug("Changing internal",t,i),i===n?g[t]:void(e.isPlainObject(t)?e.extend(!0,g,t):g[t]=i)},debug:function(){m.debug&&(m.performance?g.performance.log(arguments):(g.debug=Function.prototype.bind.call(console.info,console,m.name+":"),g.debug.apply(console,arguments)))},verbose:function(){m.verbose&&m.debug&&(m.performance?g.performance.log(arguments):(g.verbose=Function.prototype.bind.call(console.info,console,m.name+":"),g.verbose.apply(console,arguments)))},error:function(){g.error=Function.prototype.bind.call(console.error,console,m.name+":"),g.error.apply(console,arguments)},performance:{log:function(e){var t,i,n;m.performance&&(t=(new Date).getTime(),n=a||t,i=t-n,a=t,c.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:y,"Execution Time":i})),clearTimeout(g.performance.timer),g.performance.timer=setTimeout(g.performance.display,500)},display:function(){var t=m.name+":",i=0;a=!1,clearTimeout(g.performance.timer),e.each(c,function(e,t){i+=t["Execution Time"]}),t+=" "+i+"ms",s&&(t+=" '"+s+"'"),r.length>1&&(t+=" ("+r.length+")"),(console.group!==n||console.table!==n)&&c.length>0&&(console.groupCollapsed(t),console.table?console.table(c):e.each(c,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),c=[]}},invoke:function(t,i,r){var s,a,c,u=k;return i=i||d,r=y||r,"string"==typeof t&&u!==n&&(t=t.split(/[\. ]/),s=t.length-1,e.each(t,function(i,o){var r=i!=s?o+t[i+1].charAt(0).toUpperCase()+t[i+1].slice(1):t;if(e.isPlainObject(u[r])&&i!=s)u=u[r];else{if(u[r]!==n)return a=u[r],!1;if(!e.isPlainObject(u[o])||i==s)return u[o]!==n?(a=u[o],!1):!1;u=u[o]}})),e.isFunction(a)?c=a.apply(r,i):a!==n&&(c=a),e.isArray(o)?o.push(c):o!==n?o=[o,c]:c!==n&&(o=c),a}},l?(k===n&&g.initialize(),g.invoke(u)):(k!==n&&k.invoke("destroy"),g.initialize())}),o!==n?o:this},e.fn.visit.settings={name:"Visit",debug:!1,verbose:!1,performance:!0,namespace:"visit",increment:!1,surpass:!1,count:!1,limit:!1,delimiter:"&",storageMethod:"localstorage",key:{count:"visit-count",ids:"visit-ids"},expires:30,domain:!1,path:"/",onLimit:function(){},onChange:function(){},error:{method:"The method you called is not defined",missingPersist:"Using the persist setting requires the inclusion of PersistJS",noCookieStorage:"The default storage cookie requires $.cookie to be included."}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/public/semantic/components/message.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Message
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.message{position:relative;min-height:1em;margin:1em 0;background:#f8f8f9;padding:1em 1.5em;line-height:1.4285em;color:rgba(0,0,0,.87);-webkit-transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;border-radius:.28571429rem;box-shadow:0 0 0 1px rgba(34,36,38,.22) inset,0 0 0 0 transparent}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message .header{display:block;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;margin:-.14285em 0 0}.ui.message .header:not(.ui){font-size:1.14285714em}.ui.message p{opacity:.85;margin:.75em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.25em}.ui.message ul.list{text-align:left;padding:0;opacity:.85;list-style-position:inside;margin:.5em 0 0}.ui.message ul.list:first-child{margin-top:0}.ui.message ul.list:last-child{margin-bottom:0}.ui.message ul.list li{position:relative;list-style-type:none;margin:0 0 .3em 1em;padding:0}.ui.message ul.list li:before{position:absolute;content:'•';left:-1em;height:100%;vertical-align:baseline}.ui.message ul.list li:last-child{margin-bottom:0}.ui.message>.icon{margin-right:.6em}.ui.message>.close.icon{cursor:pointer;position:absolute;margin:0;top:.78575em;right:.5em;opacity:.7;-webkit-transition:opacity .1s ease;transition:opacity .1s ease}.ui.message>.close.icon:hover{opacity:1}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.dropdown .menu>.message{margin:0 -1px}.ui.visible.visible.visible.visible.message{display:block}.ui.icon.visible.visible.visible.visible.message{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ui.hidden.hidden.hidden.hidden.message{display:none}.ui.compact.message{display:inline-block}.ui.attached.message{margin-bottom:-1px;border-radius:.28571429rem .28571429rem 0 0;box-shadow:0 0 0 1px rgba(34,36,38,.15) inset;margin-left:-1px;margin-right:-1px}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .28571429rem .28571429rem;box-shadow:0 0 0 1px rgba(34,36,38,.15) inset,0 1px 2px 0 rgba(34,36,38,.15)}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{display:block;width:auto}.ui.icon.message{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.ui.icon.message>.icon:not(.close){display:block;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:auto;line-height:1;vertical-align:middle;font-size:3em;opacity:.8}.ui.icon.message>.content{display:block;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;vertical-align:middle}.ui.icon.message .icon:not(.close)+.content{padding-left:0}.ui.icon.message .circular.icon{width:1em}.ui.floating.message{box-shadow:0 0 0 1px rgba(34,36,38,.22) inset,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.08)}.ui.positive.message{background-color:#fcfff5;color:#2c662d}.ui.attached.positive.message,.ui.positive.message{box-shadow:0 0 0 1px #a3c293 inset,0 0 0 0 transparent}.ui.positive.message .header{color:#1a531b}.ui.negative.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.negative.message,.ui.negative.message{box-shadow:0 0 0 1px #e0b4b4 inset,0 0 0 0 transparent}.ui.negative.message .header{color:#912d2b}.ui.info.message{background-color:#f8ffff;color:#276f86}.ui.attached.info.message,.ui.info.message{box-shadow:0 0 0 1px #a9d5de inset,0 0 0 0 transparent}.ui.info.message .header{color:#0e566c}.ui.warning.message{background-color:#fffaf3;color:#573a08}.ui.attached.warning.message,.ui.warning.message{box-shadow:0 0 0 1px #c9ba9b inset,0 0 0 0 transparent}.ui.warning.message .header{color:#794b02}.ui.error.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.error.message,.ui.error.message{box-shadow:0 0 0 1px #e0b4b4 inset,0 0 0 0 transparent}.ui.error.message .header{color:#912d2b}.ui.success.message{background-color:#fcfff5;color:#2c662d}.ui.attached.success.message,.ui.success.message{box-shadow:0 0 0 1px #a3c293 inset,0 0 0 0 transparent}.ui.success.message .header{color:#1a531b}.ui.black.message,.ui.inverted.message{background-color:#1b1c1d;color:rgba(255,255,255,.9)}.ui.red.message{background-color:#ffe8e6;color:#db2828}.ui.red.message .header{color:#c82121}.ui.orange.message{background-color:#ffedde;color:#f2711c}.ui.orange.message .header{color:#e7640d}.ui.yellow.message{background-color:#fff8db;color:#b58105}.ui.yellow.message .header{color:#9c6f04}.ui.olive.message{background-color:#fbfdef;color:#8abc1e}.ui.olive.message .header{color:#7aa61a}.ui.green.message{background-color:#e5f9e7;color:#1ebc30}.ui.green.message .header{color:#1aa62a}.ui.teal.message{background-color:#e1f7f7;color:#10a3a3}.ui.teal.message .header{color:#0e8c8c}.ui.blue.message{background-color:#dff0ff;color:#2185d0}.ui.blue.message .header{color:#1e77ba}.ui.violet.message{background-color:#eae7ff;color:#6435c9}.ui.violet.message .header{color:#5a30b5}.ui.purple.message{background-color:#f6e7ff;color:#a333c8}.ui.purple.message .header{color:#922eb4}.ui.pink.message{background-color:#ffe3fb;color:#e03997}.ui.pink.message .header{color:#dd238b}.ui.brown.message{background-color:#f1e2d3;color:#a5673f}.ui.brown.message .header{color:#935b38}.ui.small.message{font-size:.92857143em}.ui.message{font-size:1em}.ui.large.message{font-size:1.14285714em}.ui.huge.message{font-size:1.42857143em}.ui.massive.message{font-size:1.71428571em}
--------------------------------------------------------------------------------
/public/semantic/components/divider.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Divider
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */.ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:1rem}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(34,36,38,.15);border-bottom:1px solid rgba(255,255,255,.1)}.ui.grid>.ui.divider{font-size:1rem}.ui.horizontal.divider{display:table;white-space:nowrap;height:auto;margin:'';overflow:hidden;line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}.ui.horizontal.divider:before{background-position:right 1em top 50%}.ui.horizontal.divider:after{background-position:left 1em top 50%}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:'';z-index:3;border-left:1px solid rgba(34,36,38,.15);border-right:1px solid rgba(255,255,255,.1);width:0;height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{display:table;white-space:nowrap;height:auto;margin:'';overflow:hidden;line-height:1;text-align:center;position:static;top:0;left:0;-webkit-transform:none;-ms-transform:none;transform:none}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{left:0;border-left:none;content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{background-position:right 1em top 50%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{background-position:left 1em top 50%}}.ui.divider>.icon{margin:0;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.hidden.divider:after,.ui.hidden.divider:before{display:none}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:rgba(34,36,38,.15)!important;border-left-color:rgba(34,36,38,.15)!important;border-bottom-color:rgba(255,255,255,.15)!important;border-right-color:rgba(255,255,255,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}}
--------------------------------------------------------------------------------
/public/semantic/components/video.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Video
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2014 Contributorss
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 | !function(e,o,t,n){"use strict";e.fn.video=function(t){{var a,i=e(this),r=i.selector||"",l=(new Date).getTime(),c=[],u=arguments[0],s="string"==typeof u,m=[].slice.call(arguments,1);o.requestAnimationFrame||o.mozRequestAnimationFrame||o.webkitRequestAnimationFrame||o.msRequestAnimationFrame||function(e){setTimeout(e,0)}}return i.each(function(){var d,p=e.isPlainObject(t)?e.extend(!0,{},e.fn.video.settings,t):e.extend({},e.fn.video.settings),f=p.selector,g=p.className,h=p.error,v=p.metadata,b=p.namespace,y=p.templates,w="."+b,x="module-"+b,F=(e(o),e(this)),C=F.find(f.placeholder),E=F.find(f.playButton),T=F.find(f.embed),A=this,P=F.data(x);d={initialize:function(){d.debug("Initializing video"),d.create(),F.on("click"+w,f.placeholder,d.play).on("click"+w,f.playButton,d.play),d.instantiate()},instantiate:function(){d.verbose("Storing instance of module",d),P=d,F.data(x,d)},create:function(){var e=F.data(v.image),o=y.video(e);F.html(o),d.refresh(),e||d.play(),d.debug("Creating html for video element",o)},destroy:function(){d.verbose("Destroying previous instance of video"),d.reset(),F.removeData(x).off(w)},refresh:function(){d.verbose("Refreshing selector cache"),C=F.find(f.placeholder),E=F.find(f.playButton),T=F.find(f.embed)},change:function(e,o,t){d.debug("Changing video to ",e,o,t),F.data(v.source,e).data(v.id,o).data(v.url,t),p.onChange()},reset:function(){d.debug("Clearing video embed and showing placeholder"),F.removeClass(g.active),T.html(" "),C.show(),p.onReset()},play:function(){d.debug("Playing video");var e=F.data(v.source)||!1,o=F.data(v.url)||!1,t=F.data(v.id)||!1;T.html(d.generate.html(e,t,o)),F.addClass(g.active),p.onPlay()},get:{source:function(e){return"string"!=typeof e?!1:-1!==e.search("youtube.com")?"youtube":-1!==e.search("vimeo.com")?"vimeo":!1},id:function(e){return e.match(p.regExp.youtube)?e.match(p.regExp.youtube)[1]:e.match(p.regExp.vimeo)?e.match(p.regExp.vimeo)[2]:!1}},generate:{html:function(e,o,t){d.debug("Generating embed html");var n;return e=e||p.source,o=o||p.id,e&&o||t?(e&&o||(e=d.get.source(t),o=d.get.id(t)),"vimeo"==e?n='':"youtube"==e&&(n='')):d.error(h.noVideo),n},url:function(e){var o=p.api?1:0,t="auto"===p.autoplay?F.data("image")!==n:p.autoplay,a=p.hd?1:0,i=p.showUI?1:0,r=p.showUI?0:1,l="";return"vimeo"==e&&(l="api="+o+"&title="+i+"&byline="+i+"&portrait="+i+"&autoplay="+t,p.color&&(l+="&color="+p.color)),"ustream"==e?(l="autoplay="+t,p.color&&(l+="&color="+p.color)):"youtube"==e&&(l="enablejsapi="+o+"&autoplay="+t+"&autohide="+r+"&hq="+a+"&modestbranding=1",p.color&&(l+="&color="+p.color)),l}},setting:function(o,t){if(d.debug("Changing setting",o,t),e.isPlainObject(o))e.extend(!0,p,o);else{if(t===n)return p[o];p[o]=t}},internal:function(o,t){if(e.isPlainObject(o))e.extend(!0,d,o);else{if(t===n)return d[o];d[o]=t}},debug:function(){p.debug&&(p.performance?d.performance.log(arguments):(d.debug=Function.prototype.bind.call(console.info,console,p.name+":"),d.debug.apply(console,arguments)))},verbose:function(){p.verbose&&p.debug&&(p.performance?d.performance.log(arguments):(d.verbose=Function.prototype.bind.call(console.info,console,p.name+":"),d.verbose.apply(console,arguments)))},error:function(){d.error=Function.prototype.bind.call(console.error,console,p.name+":"),d.error.apply(console,arguments)},performance:{log:function(e){var o,t,n;p.performance&&(o=(new Date).getTime(),n=l||o,t=o-n,l=o,c.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:A,"Execution Time":t})),clearTimeout(d.performance.timer),d.performance.timer=setTimeout(d.performance.display,500)},display:function(){var o=p.name+":",t=0;l=!1,clearTimeout(d.performance.timer),e.each(c,function(e,o){t+=o["Execution Time"]}),o+=" "+t+"ms",r&&(o+=" '"+r+"'"),i.length>1&&(o+=" ("+i.length+")"),(console.group!==n||console.table!==n)&&c.length>0&&(console.groupCollapsed(o),console.table?console.table(c):e.each(c,function(e,o){console.log(o.Name+": "+o["Execution Time"]+"ms")}),console.groupEnd()),c=[]}},invoke:function(o,t,i){var r,l,c,u=P;return t=t||m,i=A||i,"string"==typeof o&&u!==n&&(o=o.split(/[\. ]/),r=o.length-1,e.each(o,function(t,a){var i=t!=r?a+o[t+1].charAt(0).toUpperCase()+o[t+1].slice(1):o;if(e.isPlainObject(u[i])&&t!=r)u=u[i];else{if(u[i]!==n)return l=u[i],!1;if(!e.isPlainObject(u[a])||t==r)return u[a]!==n?(l=u[a],!1):(d.error(h.method,o),!1);u=u[a]}})),e.isFunction(l)?c=l.apply(i,t):l!==n&&(c=l),e.isArray(a)?a.push(c):a!==n?a=[a,c]:c!==n&&(a=c),l}},s?(P===n&&d.initialize(),d.invoke(u)):(P!==n&&P.invoke("destroy"),d.initialize())}),a!==n?a:this},e.fn.video.settings={name:"Video",namespace:"video",debug:!1,verbose:!1,performance:!0,metadata:{id:"id",image:"image",source:"source",url:"url"},source:!1,url:!1,id:!1,aspectRatio:16/9,onPlay:function(){},onReset:function(){},onChange:function(){},onPause:function(){},onStop:function(){},width:"auto",height:"auto",autoplay:"auto",color:"#442359",hd:!0,showUI:!1,api:!0,regExp:{youtube:/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/,vimeo:/http:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/},error:{noVideo:"No video specified",method:"The method you called is not defined"},className:{active:"active"},selector:{embed:".embed",placeholder:".placeholder",playButton:".play"}},e.fn.video.settings.templates={video:function(e){var o="";return e&&(o+=' '),o+='
'}}}(jQuery,window,document);
--------------------------------------------------------------------------------
/public/semantic/components/comment.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * # Semantic UI 2.0.0 - Comment
3 | * http://github.com/semantic-org/semantic-ui/
4 | *
5 | *
6 | * Copyright 2015 Contributors
7 | * Released under the MIT license
8 | * http://opensource.org/licenses/MIT
9 | *
10 | */
11 |
12 |
13 | /*******************************
14 | Standard
15 | *******************************/
16 |
17 |
18 | /*--------------
19 | Comments
20 | ---------------*/
21 |
22 | .ui.comments {
23 | margin: 1.5em 0em;
24 | max-width: 650px;
25 | }
26 | .ui.comments:first-child {
27 | margin-top: 0em;
28 | }
29 | .ui.comments:last-child {
30 | margin-bottom: 0em;
31 | }
32 |
33 | /*--------------
34 | Comment
35 | ---------------*/
36 |
37 | .ui.comments .comment {
38 | position: relative;
39 | background: none;
40 | margin: 0.5em 0em 0em;
41 | padding: 0.5em 0em 0em;
42 | border: none;
43 | border-top: none;
44 | line-height: 1.2;
45 | }
46 | .ui.comments .comment:first-child {
47 | margin-top: 0em;
48 | padding-top: 0em;
49 | }
50 |
51 | /*--------------------
52 | Nested Comments
53 | ---------------------*/
54 |
55 | .ui.comments .comment .comments {
56 | margin: 0em 0em 0.5em 0.5em;
57 | padding: 1em 0em 1em 1em;
58 | }
59 | .ui.comments .comment .comments:before {
60 | position: absolute;
61 | top: 0px;
62 | left: 0px;
63 | }
64 | .ui.comments .comment .comments .comment {
65 | border: none;
66 | border-top: none;
67 | background: none;
68 | }
69 |
70 | /*--------------
71 | Avatar
72 | ---------------*/
73 |
74 | .ui.comments .comment .avatar {
75 | display: block;
76 | width: 2.5em;
77 | height: auto;
78 | float: left;
79 | margin: 0.2em 0em 0em;
80 | }
81 | .ui.comments .comment img.avatar,
82 | .ui.comments .comment .avatar img {
83 | display: block;
84 | margin: 0em auto;
85 | width: 100%;
86 | height: 100%;
87 | border-radius: 0.25rem;
88 | }
89 |
90 | /*--------------
91 | Content
92 | ---------------*/
93 |
94 | .ui.comments .comment > .content {
95 | display: block;
96 | }
97 |
98 | /* If there is an avatar move content over */
99 | .ui.comments .comment > .avatar ~ .content {
100 | margin-left: 3.5em;
101 | }
102 |
103 | /*--------------
104 | Author
105 | ---------------*/
106 |
107 | .ui.comments .comment .author {
108 | font-size: 1em;
109 | color: rgba(0, 0, 0, 0.87);
110 | font-weight: bold;
111 | }
112 | .ui.comments .comment a.author {
113 | cursor: pointer;
114 | }
115 | .ui.comments .comment a.author:hover {
116 | color: #1e70bf;
117 | }
118 |
119 | /*--------------
120 | Metadata
121 | ---------------*/
122 |
123 | .ui.comments .comment .metadata {
124 | display: inline-block;
125 | margin-left: 0.5em;
126 | color: rgba(0, 0, 0, 0.4);
127 | font-size: 0.875em;
128 | }
129 | .ui.comments .comment .metadata > * {
130 | display: inline-block;
131 | margin: 0em 0.5em 0em 0em;
132 | }
133 | .ui.comments .comment .metadata > :last-child {
134 | margin-right: 0em;
135 | }
136 |
137 | /*--------------------
138 | Comment Text
139 | ---------------------*/
140 |
141 | .ui.comments .comment .text {
142 | margin: 0.25em 0em 0.5em;
143 | font-size: 1em;
144 | word-wrap: break-word;
145 | color: rgba(0, 0, 0, 0.87);
146 | line-height: 1.3;
147 | }
148 |
149 | /*--------------------
150 | User Actions
151 | ---------------------*/
152 |
153 | .ui.comments .comment .actions {
154 | font-size: 0.875em;
155 | }
156 | .ui.comments .comment .actions a {
157 | cursor: pointer;
158 | display: inline-block;
159 | margin: 0em 0.75em 0em 0em;
160 | color: rgba(0, 0, 0, 0.4);
161 | }
162 | .ui.comments .comment .actions a:last-child {
163 | margin-right: 0em;
164 | }
165 | .ui.comments .comment .actions a.active,
166 | .ui.comments .comment .actions a:hover {
167 | color: rgba(0, 0, 0, 0.8);
168 | }
169 |
170 | /*--------------------
171 | Reply Form
172 | ---------------------*/
173 |
174 | .ui.comments > .reply.form {
175 | margin-top: 1em;
176 | }
177 | .ui.comments .comment .reply.form {
178 | width: 100%;
179 | margin-top: 1em;
180 | }
181 | .ui.comments .reply.form textarea {
182 | font-size: 1em;
183 | height: 12em;
184 | }
185 |
186 |
187 | /*******************************
188 | State
189 | *******************************/
190 |
191 | .ui.collapsed.comments,
192 | .ui.comments .collapsed.comments,
193 | .ui.comments .collapsed.comment {
194 | display: none;
195 | }
196 |
197 |
198 | /*******************************
199 | Variations
200 | *******************************/
201 |
202 |
203 | /*--------------------
204 | Threaded
205 | ---------------------*/
206 |
207 | .ui.threaded.comments .comment .comments {
208 | margin: -1.5em 0 -1em 1.25em;
209 | padding: 3em 0em 2em 2.25em;
210 | box-shadow: -1px 0px 0px rgba(34, 36, 38, 0.15);
211 | }
212 |
213 | /*--------------------
214 | Minimal
215 | ---------------------*/
216 |
217 | .ui.minimal.comments .comment .actions {
218 | opacity: 0;
219 | position: absolute;
220 | top: 0px;
221 | right: 0px;
222 | left: auto;
223 | -webkit-transition: opacity 0.2s ease;
224 | transition: opacity 0.2s ease;
225 | -webkit-transition-delay: 0.1s;
226 | transition-delay: 0.1s;
227 | }
228 | .ui.minimal.comments .comment > .content:hover > .actions {
229 | opacity: 1;
230 | }
231 |
232 | /*--------------------
233 | Sizes
234 | ---------------------*/
235 |
236 | .ui.small.comments {
237 | font-size: 0.9em;
238 | }
239 | .ui.comments {
240 | font-size: 1em;
241 | }
242 | .ui.large.comments {
243 | font-size: 1.1em;
244 | }
245 | .ui.huge.comments {
246 | font-size: 1.2em;
247 | }
248 |
249 |
250 | /*******************************
251 | Theme Overrides
252 | *******************************/
253 |
254 |
255 |
256 | /*******************************
257 | User Variable Overrides
258 | *******************************/
259 |
260 |
--------------------------------------------------------------------------------