diff --git a/Server/app/layouts/main.jl.html b/Server/app/layouts/main.jl.html
index e0e9a3e..ea10148 100644
--- a/Server/app/layouts/main.jl.html
+++ b/Server/app/layouts/main.jl.html
@@ -10,6 +10,7 @@
+
diff --git a/Server/app/resources/basic/BasicController.jl b/Server/app/resources/basic/BasicController.jl
index 59302a7..88918a5 100644
--- a/Server/app/resources/basic/BasicController.jl
+++ b/Server/app/resources/basic/BasicController.jl
@@ -8,6 +8,11 @@ using Server.DatabaseSupport, Server.TemplateEditor
controller = "basic"
dict_layouts = Dict(
:landing => generate_layout_html("main",controller,"landing",css=["landing"]),
+ :manifesto => generate_layout_html("main",controller,"manifesto"),
+ :join_us => generate_layout_html("main",controller,"join_us"),
+ :groups => generate_layout_html("main",controller,"groups"),
+ :cooperatives => generate_layout_html("main",controller,"cooperatives"),
+ :communities => generate_layout_html("main",controller,"communities"),
)
#---General-----------------------------------------------------
@@ -20,5 +25,40 @@ function landing()
)
end
+function manifesto()
+ html(:basic,:manifesto, layout = dict_layouts[:manifesto], context = @__MODULE__,
+ title = "LibSoc - Manifesto",
+ description = ""
+ )
+end
+
+function join_us()
+ html(:basic,:join_us, layout = dict_layouts[:join_us], context = @__MODULE__,
+ title = "LibSoc - Join us",
+ description = ""
+ )
+end
+
+function groups()
+ html(:basic,:groups, layout = dict_layouts[:groups], context = @__MODULE__,
+ title = "LibSoc - Groups",
+ description = ""
+ )
+end
+
+function cooperatives()
+ html(:basic,:cooperatives, layout = dict_layouts[:cooperatives], context = @__MODULE__,
+ title = "LibSoc - Cooperatives",
+ description = ""
+ )
+end
+
+function communities()
+ html(:basic,:communities, layout = dict_layouts[:communities], context = @__MODULE__,
+ title = "LibSoc - Communities",
+ description = ""
+ )
+end
+
end
\ No newline at end of file
diff --git a/Server/app/resources/basic/views/communities.jl.html b/Server/app/resources/basic/views/communities.jl.html
new file mode 100644
index 0000000..6363163
--- /dev/null
+++ b/Server/app/resources/basic/views/communities.jl.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Server/app/resources/basic/views/cooperatives.jl.html b/Server/app/resources/basic/views/cooperatives.jl.html
new file mode 100644
index 0000000..f0b9aa6
--- /dev/null
+++ b/Server/app/resources/basic/views/cooperatives.jl.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Server/app/resources/basic/views/groups.jl.html b/Server/app/resources/basic/views/groups.jl.html
new file mode 100644
index 0000000..93ad53e
--- /dev/null
+++ b/Server/app/resources/basic/views/groups.jl.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Server/app/resources/basic/views/join_us.jl.html b/Server/app/resources/basic/views/join_us.jl.html
new file mode 100644
index 0000000..862cd73
--- /dev/null
+++ b/Server/app/resources/basic/views/join_us.jl.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Server/app/resources/basic/views/manifesto.jl.html b/Server/app/resources/basic/views/manifesto.jl.html
new file mode 100644
index 0000000..336c349
--- /dev/null
+++ b/Server/app/resources/basic/views/manifesto.jl.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Server/app/svelte/public/css/footer.css b/Server/app/svelte/public/css/footer.css
index 882c2d6..b5d8e8f 100644
--- a/Server/app/svelte/public/css/footer.css
+++ b/Server/app/svelte/public/css/footer.css
@@ -5,7 +5,8 @@ footer {
bottom: 0;
width: 100%;
height: auto;
- background: var(--dark-green);
+ background: #5B6970;/*var(--dark-green);*/
+ border-top: #DD1C1A solid 0.5rem;
}
footer p, footer a {
@@ -53,6 +54,15 @@ footer h2 {
margin-bottom: 0;
}
+
+#tag-line {
+ position: relative;
+ margin: auto;
+ font-size: 1.2rem;
+ text-align: center;
+ padding-bottom: 1rem;
+}
+
footer a {
font-size: 1.2rem;
color: #d8d8d8;
@@ -105,7 +115,7 @@ footer p, footer label {
}
#contact-us-container {
- width: 14rem;
+ width: 16rem;
}
#contact-us-container h3 {
diff --git a/Server/app/svelte/public/css/navbar.css b/Server/app/svelte/public/css/navbar.css
index e201e2c..4e10415 100644
--- a/Server/app/svelte/public/css/navbar.css
+++ b/Server/app/svelte/public/css/navbar.css
@@ -27,8 +27,10 @@
}
#navbar-logo {
- width: 3.16rem;
+ height: 3.5rem;
+ width: 3.5rem;
object-fit: contain;
+ border-radius: 10rem;
}
#navbar-logo-text {
diff --git a/Server/app/svelte/rollup.config.js b/Server/app/svelte/rollup.config.js
index c32a982..72c9b3c 100644
--- a/Server/app/svelte/rollup.config.js
+++ b/Server/app/svelte/rollup.config.js
@@ -10,7 +10,6 @@ import watch from "rollup-plugin-watch";
const production = !process.env.ROLLUP_WATCH;
-
function serve() {
let server;
diff --git a/Server/app/svelte/src/communities-component.svelte b/Server/app/svelte/src/communities-component.svelte
new file mode 100644
index 0000000..1de1de2
--- /dev/null
+++ b/Server/app/svelte/src/communities-component.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/app/svelte/src/cooperatives-component.svelte b/Server/app/svelte/src/cooperatives-component.svelte
new file mode 100644
index 0000000..5c00464
--- /dev/null
+++ b/Server/app/svelte/src/cooperatives-component.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/app/svelte/src/footer/footer-component.svelte b/Server/app/svelte/src/footer/footer-component.svelte
index db1d397..1668703 100644
--- a/Server/app/svelte/src/footer/footer-component.svelte
+++ b/Server/app/svelte/src/footer/footer-component.svelte
@@ -2,8 +2,12 @@
diff --git a/Server/app/svelte/src/groups-component.svelte b/Server/app/svelte/src/groups-component.svelte
new file mode 100644
index 0000000..054755b
--- /dev/null
+++ b/Server/app/svelte/src/groups-component.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/app/svelte/src/join-us-component.svelte b/Server/app/svelte/src/join-us-component.svelte
new file mode 100644
index 0000000..8e27f5b
--- /dev/null
+++ b/Server/app/svelte/src/join-us-component.svelte
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/app/svelte/src/landing-component.svelte b/Server/app/svelte/src/landing-component.svelte
index f74bf6b..4ad890a 100644
--- a/Server/app/svelte/src/landing-component.svelte
+++ b/Server/app/svelte/src/landing-component.svelte
@@ -2,7 +2,7 @@
-
-
-
I AM A TEXT FOR TESTING
-
+
\ No newline at end of file
diff --git a/Server/app/svelte/src/manifesto-component.svelte b/Server/app/svelte/src/manifesto-component.svelte
new file mode 100644
index 0000000..27ad49a
--- /dev/null
+++ b/Server/app/svelte/src/manifesto-component.svelte
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/app/svelte/src/navbar/navbar-component.svelte b/Server/app/svelte/src/navbar/navbar-component.svelte
index 54d684d..b37cf1f 100644
--- a/Server/app/svelte/src/navbar/navbar-component.svelte
+++ b/Server/app/svelte/src/navbar/navbar-component.svelte
@@ -35,8 +35,8 @@
diff --git a/Server/public/css/footer.css b/Server/public/css/footer.css
index 882c2d6..b5d8e8f 100644
--- a/Server/public/css/footer.css
+++ b/Server/public/css/footer.css
@@ -5,7 +5,8 @@ footer {
bottom: 0;
width: 100%;
height: auto;
- background: var(--dark-green);
+ background: #5B6970;/*var(--dark-green);*/
+ border-top: #DD1C1A solid 0.5rem;
}
footer p, footer a {
@@ -53,6 +54,15 @@ footer h2 {
margin-bottom: 0;
}
+
+#tag-line {
+ position: relative;
+ margin: auto;
+ font-size: 1.2rem;
+ text-align: center;
+ padding-bottom: 1rem;
+}
+
footer a {
font-size: 1.2rem;
color: #d8d8d8;
@@ -105,7 +115,7 @@ footer p, footer label {
}
#contact-us-container {
- width: 14rem;
+ width: 16rem;
}
#contact-us-container h3 {
diff --git a/Server/public/css/navbar.css b/Server/public/css/navbar.css
index e201e2c..4e10415 100644
--- a/Server/public/css/navbar.css
+++ b/Server/public/css/navbar.css
@@ -27,8 +27,10 @@
}
#navbar-logo {
- width: 3.16rem;
+ height: 3.5rem;
+ width: 3.5rem;
object-fit: contain;
+ border-radius: 10rem;
}
#navbar-logo-text {
diff --git a/Server/public/favicon.png b/Server/public/favicon.png
new file mode 100644
index 0000000..d3f5d2b
Binary files /dev/null and b/Server/public/favicon.png differ
diff --git a/Server/public/favicon2.png b/Server/public/favicon2.png
new file mode 100644
index 0000000..e590acc
Binary files /dev/null and b/Server/public/favicon2.png differ
diff --git a/Server/public/favicon3.png b/Server/public/favicon3.png
new file mode 100644
index 0000000..500b605
Binary files /dev/null and b/Server/public/favicon3.png differ
diff --git a/Server/public/img/common/flag.png b/Server/public/img/common/flag.png
new file mode 100644
index 0000000..433035f
Binary files /dev/null and b/Server/public/img/common/flag.png differ
diff --git a/Server/public/img/common/flag2.png b/Server/public/img/common/flag2.png
new file mode 100644
index 0000000..3f9c19b
Binary files /dev/null and b/Server/public/img/common/flag2.png differ
diff --git a/Server/public/js/components/communities-component.js b/Server/public/js/components/communities-component.js
new file mode 100644
index 0000000..84d069b
--- /dev/null
+++ b/Server/public/js/components/communities-component.js
@@ -0,0 +1,80 @@
+
+(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
+import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-bc9d3868.js';
+
+/* src\communities-component.svelte generated by Svelte v3.52.0 */
+
+function create_fragment(ctx) {
+ const block = {
+ c: function create() {
+ this.c = noop;
+ },
+ l: function claim(nodes) {
+ throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+ },
+ m: noop,
+ p: noop,
+ i: noop,
+ o: noop,
+ d: noop
+ };
+
+ dispatch_dev("SvelteRegisterBlock", {
+ block,
+ id: create_fragment.name,
+ type: "component",
+ source: "",
+ ctx
+ });
+
+ return block;
+}
+
+function instance($$self, $$props, $$invalidate) {
+ let { $$slots: slots = {}, $$scope } = $$props;
+ validate_slots('communities-component', slots, []);
+
+ onMount(() => {
+
+ });
+
+ const writable_props = [];
+
+ Object.keys($$props).forEach(key => {
+ if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`);
+ });
+
+ $$self.$capture_state = () => ({ onMount });
+ return [];
+}
+
+class Communities_component extends SvelteElement {
+ constructor(options) {
+ super();
+ this.shadowRoot.innerHTML = ``;
+
+ init(
+ this,
+ {
+ target: this.shadowRoot,
+ props: attribute_to_object(this.attributes),
+ customElement: true
+ },
+ instance,
+ create_fragment,
+ safe_not_equal,
+ {},
+ null
+ );
+
+ if (options) {
+ if (options.target) {
+ insert_dev(options.target, this, options.anchor);
+ }
+ }
+ }
+}
+
+customElements.define("communities-component", Communities_component);
+
+export { Communities_component as default };
diff --git a/Server/public/js/components/cooperatives-component.js b/Server/public/js/components/cooperatives-component.js
new file mode 100644
index 0000000..7b15eb6
--- /dev/null
+++ b/Server/public/js/components/cooperatives-component.js
@@ -0,0 +1,80 @@
+
+(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
+import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-bc9d3868.js';
+
+/* src\cooperatives-component.svelte generated by Svelte v3.52.0 */
+
+function create_fragment(ctx) {
+ const block = {
+ c: function create() {
+ this.c = noop;
+ },
+ l: function claim(nodes) {
+ throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+ },
+ m: noop,
+ p: noop,
+ i: noop,
+ o: noop,
+ d: noop
+ };
+
+ dispatch_dev("SvelteRegisterBlock", {
+ block,
+ id: create_fragment.name,
+ type: "component",
+ source: "",
+ ctx
+ });
+
+ return block;
+}
+
+function instance($$self, $$props, $$invalidate) {
+ let { $$slots: slots = {}, $$scope } = $$props;
+ validate_slots('cooperatives-component', slots, []);
+
+ onMount(() => {
+
+ });
+
+ const writable_props = [];
+
+ Object.keys($$props).forEach(key => {
+ if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`);
+ });
+
+ $$self.$capture_state = () => ({ onMount });
+ return [];
+}
+
+class Cooperatives_component extends SvelteElement {
+ constructor(options) {
+ super();
+ this.shadowRoot.innerHTML = ``;
+
+ init(
+ this,
+ {
+ target: this.shadowRoot,
+ props: attribute_to_object(this.attributes),
+ customElement: true
+ },
+ instance,
+ create_fragment,
+ safe_not_equal,
+ {},
+ null
+ );
+
+ if (options) {
+ if (options.target) {
+ insert_dev(options.target, this, options.anchor);
+ }
+ }
+ }
+}
+
+customElements.define("cooperatives-component", Cooperatives_component);
+
+export { Cooperatives_component as default };
diff --git a/Server/public/js/components/footer-component.js b/Server/public/js/components/footer-component.js
index 46b23fe..0c88d11 100644
--- a/Server/public/js/components/footer-component.js
+++ b/Server/public/js/components/footer-component.js
@@ -37,9 +37,9 @@ function create_fragment(ctx) {
h2.textContent = "CONTACT US";
t1 = space();
p0 = element("p");
- t2 = text("Email: ");
+ t2 = text("WhatsApp: ");
a = element("a");
- a.textContent = "test@test";
+ a.textContent = "group invite link";
t4 = space();
button = element("button");
svg = svg_element("svg");
@@ -48,47 +48,48 @@ function create_fragment(ctx) {
path = svg_element("path");
t5 = space();
p1 = element("p");
- p1.textContent = "© 2023 LibSoc";
+ p1.textContent = "© 2023 A global network of Libertarian Socialists";
this.c = noop;
- add_location(h2, file, 12, 16, 273);
- attr_dev(a, "href", "mailto:info@chiron.com");
- add_location(a, file, 13, 26, 320);
- add_location(p0, file, 13, 16, 310);
+ add_location(h2, file, 16, 16, 313);
+ attr_dev(a, "href", "https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh");
+ attr_dev(a, "target", "_blank");
+ add_location(a, file, 18, 29, 454);
+ add_location(p0, file, 18, 16, 441);
attr_dev(div0, "id", "contact-us-container");
- add_location(div0, file, 11, 12, 224);
+ add_location(div0, file, 15, 12, 264);
attr_dev(div1, "id", "footer-grid-content-container");
attr_dev(div1, "class", "logged");
- add_location(div1, file, 10, 8, 155);
+ add_location(div1, file, 14, 8, 195);
attr_dev(rect, "id", "Rectangle_146");
attr_dev(rect, "data-name", "Rectangle 146");
attr_dev(rect, "width", "11");
attr_dev(rect, "height", "51");
attr_dev(rect, "rx", "5.5");
attr_dev(rect, "transform", "translate(22 24)");
- attr_dev(rect, "fill", "var(--pink)");
- add_location(rect, file, 19, 18, 723);
+ attr_dev(rect, "fill", "#DD1C1A");
+ add_location(rect, file, 24, 18, 907);
attr_dev(path, "id", "Path_1145");
attr_dev(path, "data-name", "Path 1145");
attr_dev(path, "d", "M23.814,4.021a5,5,0,0,1,7.372,0l16.134,17.6c2.94,3.207,1.046,10.4-3.686,8.379S28.02,14.081,28.391,13.524,16.544,27.976,11.366,30,4.741,24.828,7.68,21.621Z");
- attr_dev(path, "fill", "var(--pink)");
- add_location(path, file, 20, 18, 875);
+ attr_dev(path, "fill", "#DD1C1A");
+ add_location(path, file, 25, 18, 1055);
attr_dev(g, "id", "Group_268");
attr_dev(g, "data-name", "Group 268");
attr_dev(g, "transform", "translate(-6.177 -2.399)");
- add_location(g, file, 18, 16, 626);
+ add_location(g, file, 23, 16, 810);
attr_dev(svg, "xmlns", "http://www.w3.org/2000/svg");
attr_dev(svg, "width", "42.545");
attr_dev(svg, "height", "72.601");
attr_dev(svg, "viewBox", "0 0 42.545 72.601");
- add_location(svg, file, 17, 12, 509);
+ add_location(svg, file, 22, 12, 693);
attr_dev(button, "id", "footer-up");
attr_dev(button, "aria-label", "go up");
- add_location(button, file, 16, 8, 416);
+ add_location(button, file, 21, 8, 600);
attr_dev(p1, "id", "footer-copyright");
- add_location(p1, file, 24, 8, 1198);
+ add_location(p1, file, 29, 8, 1374);
attr_dev(div2, "id", "footer-content-container");
- add_location(div2, file, 9, 4, 110);
- add_location(footer, file, 8, 0, 96);
+ add_location(div2, file, 13, 4, 150);
+ add_location(footer, file, 12, 0, 136);
},
l: function claim(nodes) {
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
diff --git a/Server/public/js/components/groups-component.js b/Server/public/js/components/groups-component.js
new file mode 100644
index 0000000..f5b8289
--- /dev/null
+++ b/Server/public/js/components/groups-component.js
@@ -0,0 +1,80 @@
+
+(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
+import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-bc9d3868.js';
+
+/* src\groups-component.svelte generated by Svelte v3.52.0 */
+
+function create_fragment(ctx) {
+ const block = {
+ c: function create() {
+ this.c = noop;
+ },
+ l: function claim(nodes) {
+ throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+ },
+ m: noop,
+ p: noop,
+ i: noop,
+ o: noop,
+ d: noop
+ };
+
+ dispatch_dev("SvelteRegisterBlock", {
+ block,
+ id: create_fragment.name,
+ type: "component",
+ source: "",
+ ctx
+ });
+
+ return block;
+}
+
+function instance($$self, $$props, $$invalidate) {
+ let { $$slots: slots = {}, $$scope } = $$props;
+ validate_slots('groups-component', slots, []);
+
+ onMount(() => {
+
+ });
+
+ const writable_props = [];
+
+ Object.keys($$props).forEach(key => {
+ if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`);
+ });
+
+ $$self.$capture_state = () => ({ onMount });
+ return [];
+}
+
+class Groups_component extends SvelteElement {
+ constructor(options) {
+ super();
+ this.shadowRoot.innerHTML = ``;
+
+ init(
+ this,
+ {
+ target: this.shadowRoot,
+ props: attribute_to_object(this.attributes),
+ customElement: true
+ },
+ instance,
+ create_fragment,
+ safe_not_equal,
+ {},
+ null
+ );
+
+ if (options) {
+ if (options.target) {
+ insert_dev(options.target, this, options.anchor);
+ }
+ }
+ }
+}
+
+customElements.define("groups-component", Groups_component);
+
+export { Groups_component as default };
diff --git a/Server/public/js/components/index-71f03132.js b/Server/public/js/components/index-71f03132.js
new file mode 100644
index 0000000..6c034e1
--- /dev/null
+++ b/Server/public/js/components/index-71f03132.js
@@ -0,0 +1,445 @@
+
+(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
+function noop() { }
+function add_location(element, file, line, column, char) {
+ element.__svelte_meta = {
+ loc: { file, line, column, char }
+ };
+}
+function run(fn) {
+ return fn();
+}
+function blank_object() {
+ return Object.create(null);
+}
+function run_all(fns) {
+ fns.forEach(run);
+}
+function is_function(thing) {
+ return typeof thing === 'function';
+}
+function safe_not_equal(a, b) {
+ return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');
+}
+let src_url_equal_anchor;
+function src_url_equal(element_src, url) {
+ if (!src_url_equal_anchor) {
+ src_url_equal_anchor = document.createElement('a');
+ }
+ src_url_equal_anchor.href = url;
+ return element_src === src_url_equal_anchor.href;
+}
+function is_empty(obj) {
+ return Object.keys(obj).length === 0;
+}
+function append(target, node) {
+ target.appendChild(node);
+}
+function insert(target, node, anchor) {
+ target.insertBefore(node, anchor || null);
+}
+function detach(node) {
+ node.parentNode.removeChild(node);
+}
+function destroy_each(iterations, detaching) {
+ for (let i = 0; i < iterations.length; i += 1) {
+ if (iterations[i])
+ iterations[i].d(detaching);
+ }
+}
+function element(name) {
+ return document.createElement(name);
+}
+function svg_element(name) {
+ return document.createElementNS('http://www.w3.org/2000/svg', name);
+}
+function text(data) {
+ return document.createTextNode(data);
+}
+function space() {
+ return text(' ');
+}
+function listen(node, event, handler, options) {
+ node.addEventListener(event, handler, options);
+ return () => node.removeEventListener(event, handler, options);
+}
+function attr(node, attribute, value) {
+ if (value == null)
+ node.removeAttribute(attribute);
+ else if (node.getAttribute(attribute) !== value)
+ node.setAttribute(attribute, value);
+}
+function children(element) {
+ return Array.from(element.childNodes);
+}
+function set_style(node, key, value, important) {
+ if (value === null) {
+ node.style.removeProperty(key);
+ }
+ else {
+ node.style.setProperty(key, value, important ? 'important' : '');
+ }
+}
+function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {
+ const e = document.createEvent('CustomEvent');
+ e.initCustomEvent(type, bubbles, cancelable, detail);
+ return e;
+}
+function attribute_to_object(attributes) {
+ const result = {};
+ for (const attribute of attributes) {
+ result[attribute.name] = attribute.value;
+ }
+ return result;
+}
+
+let current_component;
+function set_current_component(component) {
+ current_component = component;
+}
+function get_current_component() {
+ if (!current_component)
+ throw new Error('Function called outside component initialization');
+ return current_component;
+}
+/**
+ * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.
+ * It must be called during the component's initialisation (but doesn't need to live *inside* the component;
+ * it can be called from an external module).
+ *
+ * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).
+ *
+ * https://svelte.dev/docs#run-time-svelte-onmount
+ */
+function onMount(fn) {
+ get_current_component().$$.on_mount.push(fn);
+}
+/**
+ * Associates an arbitrary `context` object with the current component and the specified `key`
+ * and returns that object. The context is then available to children of the component
+ * (including slotted content) with `getContext`.
+ *
+ * Like lifecycle functions, this must be called during component initialisation.
+ *
+ * https://svelte.dev/docs#run-time-svelte-setcontext
+ */
+function setContext(key, context) {
+ get_current_component().$$.context.set(key, context);
+ return context;
+}
+/**
+ * Retrieves the context that belongs to the closest parent component with the specified `key`.
+ * Must be called during component initialisation.
+ *
+ * https://svelte.dev/docs#run-time-svelte-getcontext
+ */
+function getContext(key) {
+ return get_current_component().$$.context.get(key);
+}
+
+const dirty_components = [];
+const binding_callbacks = [];
+const render_callbacks = [];
+const flush_callbacks = [];
+const resolved_promise = Promise.resolve();
+let update_scheduled = false;
+function schedule_update() {
+ if (!update_scheduled) {
+ update_scheduled = true;
+ resolved_promise.then(flush);
+ }
+}
+function add_render_callback(fn) {
+ render_callbacks.push(fn);
+}
+// flush() calls callbacks in this order:
+// 1. All beforeUpdate callbacks, in order: parents before children
+// 2. All bind:this callbacks, in reverse order: children before parents.
+// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT
+// for afterUpdates called during the initial onMount, which are called in
+// reverse order: children before parents.
+// Since callbacks might update component values, which could trigger another
+// call to flush(), the following steps guard against this:
+// 1. During beforeUpdate, any updated components will be added to the
+// dirty_components array and will cause a reentrant call to flush(). Because
+// the flush index is kept outside the function, the reentrant call will pick
+// up where the earlier call left off and go through all dirty components. The
+// current_component value is saved and restored so that the reentrant call will
+// not interfere with the "parent" flush() call.
+// 2. bind:this callbacks cannot trigger new flush() calls.
+// 3. During afterUpdate, any updated components will NOT have their afterUpdate
+// callback called a second time; the seen_callbacks set, outside the flush()
+// function, guarantees this behavior.
+const seen_callbacks = new Set();
+let flushidx = 0; // Do *not* move this inside the flush() function
+function flush() {
+ const saved_component = current_component;
+ do {
+ // first, call beforeUpdate functions
+ // and update components
+ while (flushidx < dirty_components.length) {
+ const component = dirty_components[flushidx];
+ flushidx++;
+ set_current_component(component);
+ update(component.$$);
+ }
+ set_current_component(null);
+ dirty_components.length = 0;
+ flushidx = 0;
+ while (binding_callbacks.length)
+ binding_callbacks.pop()();
+ // then, once components are updated, call
+ // afterUpdate functions. This may cause
+ // subsequent updates...
+ for (let i = 0; i < render_callbacks.length; i += 1) {
+ const callback = render_callbacks[i];
+ if (!seen_callbacks.has(callback)) {
+ // ...so guard against infinite loops
+ seen_callbacks.add(callback);
+ callback();
+ }
+ }
+ render_callbacks.length = 0;
+ } while (dirty_components.length);
+ while (flush_callbacks.length) {
+ flush_callbacks.pop()();
+ }
+ update_scheduled = false;
+ seen_callbacks.clear();
+ set_current_component(saved_component);
+}
+function update($$) {
+ if ($$.fragment !== null) {
+ $$.update();
+ run_all($$.before_update);
+ const dirty = $$.dirty;
+ $$.dirty = [-1];
+ $$.fragment && $$.fragment.p($$.ctx, dirty);
+ $$.after_update.forEach(add_render_callback);
+ }
+}
+const outroing = new Set();
+function transition_in(block, local) {
+ if (block && block.i) {
+ outroing.delete(block);
+ block.i(local);
+ }
+}
+
+const globals = (typeof window !== 'undefined'
+ ? window
+ : typeof globalThis !== 'undefined'
+ ? globalThis
+ : global);
+function mount_component(component, target, anchor, customElement) {
+ const { fragment, after_update } = component.$$;
+ fragment && fragment.m(target, anchor);
+ if (!customElement) {
+ // onMount happens before the initial afterUpdate
+ add_render_callback(() => {
+ const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);
+ // if the component was destroyed immediately
+ // it will update the `$$.on_destroy` reference to `null`.
+ // the destructured on_destroy may still reference to the old array
+ if (component.$$.on_destroy) {
+ component.$$.on_destroy.push(...new_on_destroy);
+ }
+ else {
+ // Edge case - component was destroyed immediately,
+ // most likely as a result of a binding initialising
+ run_all(new_on_destroy);
+ }
+ component.$$.on_mount = [];
+ });
+ }
+ after_update.forEach(add_render_callback);
+}
+function destroy_component(component, detaching) {
+ const $$ = component.$$;
+ if ($$.fragment !== null) {
+ run_all($$.on_destroy);
+ $$.fragment && $$.fragment.d(detaching);
+ // TODO null out other refs, including component.$$ (but need to
+ // preserve final state?)
+ $$.on_destroy = $$.fragment = null;
+ $$.ctx = [];
+ }
+}
+function make_dirty(component, i) {
+ if (component.$$.dirty[0] === -1) {
+ dirty_components.push(component);
+ schedule_update();
+ component.$$.dirty.fill(0);
+ }
+ component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));
+}
+function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {
+ const parent_component = current_component;
+ set_current_component(component);
+ const $$ = component.$$ = {
+ fragment: null,
+ ctx: [],
+ // state
+ props,
+ update: noop,
+ not_equal,
+ bound: blank_object(),
+ // lifecycle
+ on_mount: [],
+ on_destroy: [],
+ on_disconnect: [],
+ before_update: [],
+ after_update: [],
+ context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),
+ // everything else
+ callbacks: blank_object(),
+ dirty,
+ skip_bound: false,
+ root: options.target || parent_component.$$.root
+ };
+ append_styles && append_styles($$.root);
+ let ready = false;
+ $$.ctx = instance
+ ? instance(component, options.props || {}, (i, ret, ...rest) => {
+ const value = rest.length ? rest[0] : ret;
+ if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
+ if (!$$.skip_bound && $$.bound[i])
+ $$.bound[i](value);
+ if (ready)
+ make_dirty(component, i);
+ }
+ return ret;
+ })
+ : [];
+ $$.update();
+ ready = true;
+ run_all($$.before_update);
+ // `false` as a special case of no DOM component
+ $$.fragment = create_fragment ? create_fragment($$.ctx) : false;
+ if (options.target) {
+ if (options.hydrate) {
+ const nodes = children(options.target);
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ $$.fragment && $$.fragment.l(nodes);
+ nodes.forEach(detach);
+ }
+ else {
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ $$.fragment && $$.fragment.c();
+ }
+ if (options.intro)
+ transition_in(component.$$.fragment);
+ mount_component(component, options.target, options.anchor, options.customElement);
+ flush();
+ }
+ set_current_component(parent_component);
+}
+let SvelteElement;
+if (typeof HTMLElement === 'function') {
+ SvelteElement = class extends HTMLElement {
+ constructor() {
+ super();
+ this.attachShadow({ mode: 'open' });
+ }
+ connectedCallback() {
+ const { on_mount } = this.$$;
+ this.$$.on_disconnect = on_mount.map(run).filter(is_function);
+ // @ts-ignore todo: improve typings
+ for (const key in this.$$.slotted) {
+ // @ts-ignore todo: improve typings
+ this.appendChild(this.$$.slotted[key]);
+ }
+ }
+ attributeChangedCallback(attr, _oldValue, newValue) {
+ this[attr] = newValue;
+ }
+ disconnectedCallback() {
+ run_all(this.$$.on_disconnect);
+ }
+ $destroy() {
+ destroy_component(this, 1);
+ this.$destroy = noop;
+ }
+ $on(type, callback) {
+ // TODO should this delegate to addEventListener?
+ if (!is_function(callback)) {
+ return noop;
+ }
+ const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));
+ callbacks.push(callback);
+ return () => {
+ const index = callbacks.indexOf(callback);
+ if (index !== -1)
+ callbacks.splice(index, 1);
+ };
+ }
+ $set($$props) {
+ if (this.$$set && !is_empty($$props)) {
+ this.$$.skip_bound = true;
+ this.$$set($$props);
+ this.$$.skip_bound = false;
+ }
+ }
+ };
+}
+
+function dispatch_dev(type, detail) {
+ document.dispatchEvent(custom_event(type, Object.assign({ version: '3.52.0' }, detail), { bubbles: true }));
+}
+function append_dev(target, node) {
+ dispatch_dev('SvelteDOMInsert', { target, node });
+ append(target, node);
+}
+function insert_dev(target, node, anchor) {
+ dispatch_dev('SvelteDOMInsert', { target, node, anchor });
+ insert(target, node, anchor);
+}
+function detach_dev(node) {
+ dispatch_dev('SvelteDOMRemove', { node });
+ detach(node);
+}
+function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {
+ const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];
+ if (has_prevent_default)
+ modifiers.push('preventDefault');
+ if (has_stop_propagation)
+ modifiers.push('stopPropagation');
+ dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });
+ const dispose = listen(node, event, handler, options);
+ return () => {
+ dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });
+ dispose();
+ };
+}
+function attr_dev(node, attribute, value) {
+ attr(node, attribute, value);
+ if (value == null)
+ dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });
+ else
+ dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });
+}
+function set_data_dev(text, data) {
+ data = '' + data;
+ if (text.wholeText === data)
+ return;
+ dispatch_dev('SvelteDOMSetData', { node: text, data });
+ text.data = data;
+}
+function validate_each_argument(arg) {
+ if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {
+ let msg = '{#each} only iterates over array-like objects.';
+ if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {
+ msg += ' You can use a spread to convert this iterable into an array.';
+ }
+ throw new Error(msg);
+ }
+}
+function validate_slots(name, slot, keys) {
+ for (const slot_key of Object.keys(slot)) {
+ if (!~keys.indexOf(slot_key)) {
+ console.warn(`<${name}> received an unexpected slot "${slot_key}".`);
+ }
+ }
+}
+
+export { run_all as A, svg_element as B, SvelteElement as S, attribute_to_object as a, insert_dev as b, add_location as c, dispatch_dev as d, element as e, detach_dev as f, attr_dev as g, append_dev as h, init as i, flush as j, validate_each_argument as k, globals as l, destroy_each as m, noop as n, onMount as o, binding_callbacks as p, space as q, set_style as r, safe_not_equal as s, text as t, listen_dev as u, validate_slots as v, set_data_dev as w, getContext as x, setContext as y, src_url_equal as z };
diff --git a/Server/public/js/components/join-us-component.js b/Server/public/js/components/join-us-component.js
new file mode 100644
index 0000000..dd05dc6
--- /dev/null
+++ b/Server/public/js/components/join-us-component.js
@@ -0,0 +1,80 @@
+
+(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
+import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-bc9d3868.js';
+
+/* src\join-us-component.svelte generated by Svelte v3.52.0 */
+
+function create_fragment(ctx) {
+ const block = {
+ c: function create() {
+ this.c = noop;
+ },
+ l: function claim(nodes) {
+ throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+ },
+ m: noop,
+ p: noop,
+ i: noop,
+ o: noop,
+ d: noop
+ };
+
+ dispatch_dev("SvelteRegisterBlock", {
+ block,
+ id: create_fragment.name,
+ type: "component",
+ source: "",
+ ctx
+ });
+
+ return block;
+}
+
+function instance($$self, $$props, $$invalidate) {
+ let { $$slots: slots = {}, $$scope } = $$props;
+ validate_slots('join-us-component', slots, []);
+
+ onMount(() => {
+
+ });
+
+ const writable_props = [];
+
+ Object.keys($$props).forEach(key => {
+ if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`);
+ });
+
+ $$self.$capture_state = () => ({ onMount });
+ return [];
+}
+
+class Join_us_component extends SvelteElement {
+ constructor(options) {
+ super();
+ this.shadowRoot.innerHTML = ``;
+
+ init(
+ this,
+ {
+ target: this.shadowRoot,
+ props: attribute_to_object(this.attributes),
+ customElement: true
+ },
+ instance,
+ create_fragment,
+ safe_not_equal,
+ {},
+ null
+ );
+
+ if (options) {
+ if (options.target) {
+ insert_dev(options.target, this, options.anchor);
+ }
+ }
+ }
+}
+
+customElements.define("join-us-component", Join_us_component);
+
+export { Join_us_component as default };
diff --git a/Server/public/js/components/landing-component.js b/Server/public/js/components/landing-component.js
index 373d232..482202a 100644
--- a/Server/public/js/components/landing-component.js
+++ b/Server/public/js/components/landing-component.js
@@ -1,33 +1,22 @@
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
-import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, e as element, n as noop, c as add_location, h as detach_dev } from './index-bc9d3868.js';
+import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-bc9d3868.js';
/* src\landing-component.svelte generated by Svelte v3.52.0 */
-const file = "src\\landing-component.svelte";
-
function create_fragment(ctx) {
- let p;
-
const block = {
c: function create() {
- p = element("p");
- p.textContent = "I AM A TEXT FOR TESTING";
this.c = noop;
- add_location(p, file, 19, 0, 221);
},
l: function claim(nodes) {
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
},
- m: function mount(target, anchor) {
- insert_dev(target, p, anchor);
- },
+ m: noop,
p: noop,
i: noop,
o: noop,
- d: function destroy(detaching) {
- if (detaching) detach_dev(p);
- }
+ d: noop
};
dispatch_dev("SvelteRegisterBlock", {
@@ -41,13 +30,10 @@ function create_fragment(ctx) {
return block;
}
-function instance($$self, $$props) {
+function instance($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props;
validate_slots('landing-component', slots, []);
- i;
- // Import components
- // Main code
onMount(() => {
});
@@ -58,6 +44,7 @@ function instance($$self, $$props) {
if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`);
});
+ $$self.$capture_state = () => ({ onMount });
return [];
}
diff --git a/Server/public/js/components/manifesto-component.js b/Server/public/js/components/manifesto-component.js
new file mode 100644
index 0000000..01afb76
--- /dev/null
+++ b/Server/public/js/components/manifesto-component.js
@@ -0,0 +1,80 @@
+
+(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
+import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-bc9d3868.js';
+
+/* src\manifesto-component.svelte generated by Svelte v3.52.0 */
+
+function create_fragment(ctx) {
+ const block = {
+ c: function create() {
+ this.c = noop;
+ },
+ l: function claim(nodes) {
+ throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
+ },
+ m: noop,
+ p: noop,
+ i: noop,
+ o: noop,
+ d: noop
+ };
+
+ dispatch_dev("SvelteRegisterBlock", {
+ block,
+ id: create_fragment.name,
+ type: "component",
+ source: "",
+ ctx
+ });
+
+ return block;
+}
+
+function instance($$self, $$props, $$invalidate) {
+ let { $$slots: slots = {}, $$scope } = $$props;
+ validate_slots('manifesto-component', slots, []);
+
+ onMount(() => {
+
+ });
+
+ const writable_props = [];
+
+ Object.keys($$props).forEach(key => {
+ if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`);
+ });
+
+ $$self.$capture_state = () => ({ onMount });
+ return [];
+}
+
+class Manifesto_component extends SvelteElement {
+ constructor(options) {
+ super();
+ this.shadowRoot.innerHTML = ``;
+
+ init(
+ this,
+ {
+ target: this.shadowRoot,
+ props: attribute_to_object(this.attributes),
+ customElement: true
+ },
+ instance,
+ create_fragment,
+ safe_not_equal,
+ {},
+ null
+ );
+
+ if (options) {
+ if (options.target) {
+ insert_dev(options.target, this, options.anchor);
+ }
+ }
+ }
+}
+
+customElements.define("manifesto-component", Manifesto_component);
+
+export { Manifesto_component as default };
diff --git a/Server/public/js/components/navbar-component.js b/Server/public/js/components/navbar-component.js
index f193294..87b2c50 100644
--- a/Server/public/js/components/navbar-component.js
+++ b/Server/public/js/components/navbar-component.js
@@ -20,8 +20,20 @@ function create_fragment(ctx) {
let t4;
let nav;
let ul;
- let li;
+ let li0;
let a1;
+ let t6;
+ let li1;
+ let a2;
+ let t8;
+ let li2;
+ let a3;
+ let t10;
+ let li3;
+ let a4;
+ let t12;
+ let li4;
+ let a5;
let mounted;
let dispose;
@@ -32,7 +44,7 @@ function create_fragment(ctx) {
img = element("img");
t0 = space();
span0 = element("span");
- span0.textContent = "LibSoc";
+ span0.textContent = "Libertarian socialists";
t2 = space();
input = element("input");
t3 = space();
@@ -41,34 +53,62 @@ function create_fragment(ctx) {
t4 = space();
nav = element("nav");
ul = element("ul");
- li = element("li");
+ li0 = element("li");
a1 = element("a");
- a1.textContent = "test";
+ a1.textContent = "Manifesto";
+ t6 = space();
+ li1 = element("li");
+ a2 = element("a");
+ a2.textContent = "Join us";
+ t8 = space();
+ li2 = element("li");
+ a3 = element("a");
+ a3.textContent = "Groups";
+ t10 = space();
+ li3 = element("li");
+ a4 = element("a");
+ a4.textContent = "Communities";
+ t12 = space();
+ li4 = element("li");
+ a5 = element("a");
+ a5.textContent = "Cooperatives";
this.c = noop;
- if (!src_url_equal(img.src, img_src_value = "")) attr_dev(img, "src", img_src_value);
+ if (!src_url_equal(img.src, img_src_value = "img/common/flag.png")) attr_dev(img, "src", img_src_value);
attr_dev(img, "id", "navbar-logo");
- attr_dev(img, "alt", "iql logo");
+ attr_dev(img, "alt", "logo");
add_location(img, file, 37, 8, 810);
attr_dev(span0, "id", "navbar-logo-text");
- add_location(span0, file, 38, 8, 864);
+ add_location(span0, file, 38, 8, 879);
attr_dev(a0, "id", "logo-container");
attr_dev(a0, "href", "/");
add_location(a0, file, 36, 4, 770);
attr_dev(input, "type", "checkbox");
attr_dev(input, "id", "side-menu");
- add_location(input, file, 41, 4, 950);
+ add_location(input, file, 41, 4, 981);
attr_dev(span1, "id", "hamb-line");
- add_location(span1, file, 42, 37, 1073);
+ add_location(span1, file, 42, 37, 1104);
attr_dev(label, "id", "hamb");
attr_dev(label, "for", "side-menu");
- add_location(label, file, 42, 4, 1040);
- attr_dev(a1, "href", "/test");
- add_location(a1, file, 46, 16, 1190);
- add_location(li, file, 46, 12, 1186);
+ add_location(label, file, 42, 4, 1071);
+ attr_dev(a1, "href", "/manifesto");
+ add_location(a1, file, 46, 16, 1221);
+ add_location(li0, file, 46, 12, 1217);
+ attr_dev(a2, "href", "/join-us");
+ add_location(a2, file, 47, 16, 1278);
+ add_location(li1, file, 47, 12, 1274);
+ attr_dev(a3, "href", "/groups");
+ add_location(a3, file, 48, 16, 1331);
+ add_location(li2, file, 48, 12, 1327);
+ attr_dev(a4, "href", "/communities");
+ add_location(a4, file, 49, 16, 1382);
+ add_location(li3, file, 49, 12, 1378);
+ attr_dev(a5, "href", "/cooperatives");
+ add_location(a5, file, 50, 16, 1443);
+ add_location(li4, file, 50, 12, 1439);
attr_dev(ul, "id", "menu");
- add_location(ul, file, 45, 8, 1158);
+ add_location(ul, file, 45, 8, 1189);
attr_dev(nav, "id", "nav");
- add_location(nav, file, 44, 4, 1134);
+ add_location(nav, file, 44, 4, 1165);
attr_dev(header, "id", "navbar");
add_location(header, file, 34, 0, 706);
},
@@ -90,8 +130,20 @@ function create_fragment(ctx) {
append_dev(header, t4);
append_dev(header, nav);
append_dev(nav, ul);
- append_dev(ul, li);
- append_dev(li, a1);
+ append_dev(ul, li0);
+ append_dev(li0, a1);
+ append_dev(ul, t6);
+ append_dev(ul, li1);
+ append_dev(li1, a2);
+ append_dev(ul, t8);
+ append_dev(ul, li2);
+ append_dev(li2, a3);
+ append_dev(ul, t10);
+ append_dev(ul, li3);
+ append_dev(li3, a4);
+ append_dev(ul, t12);
+ append_dev(ul, li4);
+ append_dev(li4, a5);
/*header_binding*/ ctx[4](header);
if (!mounted) {
diff --git a/Server/routes.jl b/Server/routes.jl
index e59902d..5c0f7f3 100644
--- a/Server/routes.jl
+++ b/Server/routes.jl
@@ -5,4 +5,15 @@ using Server.BasicController
#---Basic-----------------------------------------------------------
-route("/", BasicController.landing, named = :landing)
\ No newline at end of file
+route("/", BasicController.landing, named = :landing)
+
+route("/manifesto", BasicController.manifesto, named = :manifest)
+
+route("/join-us", BasicController.join_us, named = :join_us)
+
+route("/groups", BasicController.groups, named = :groups)
+
+route("/cooperatives", BasicController.cooperatives, named = :cooperatives)
+
+route("/communities", BasicController.communities, named = :communities)
+