diff --git a/_app/immutable/assets/_layout-59390a36.css b/_app/immutable/assets/_layout-90b2abc7.css similarity index 99% rename from _app/immutable/assets/_layout-59390a36.css rename to _app/immutable/assets/_layout-90b2abc7.css index f168112..669d9f8 100644 --- a/_app/immutable/assets/_layout-59390a36.css +++ b/_app/immutable/assets/_layout-90b2abc7.css @@ -607,7 +607,7 @@ table.table-custom{ color: rgb(255 255 255 / 0.7); } -.person-item:hover .table-custom th{ +.person-item:hover .table-custom th, .topic-item:hover .table-custom th{ --tw-text-opacity: 1; color: rgb(0 0 0 / var(--tw-text-opacity)); } @@ -654,7 +654,7 @@ table.table-custom{ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } -.person-item:hover .text-mild, .person-item:hover .text-supermild{ +.person-item:hover .text-mild, .person-item:hover .text-supermild, .topic-item:hover .text-mild{ --tw-text-opacity: 1; color: rgb(0 0 0 / var(--tw-text-opacity)); } diff --git a/_app/immutable/chunks/0-d0a6196e.js b/_app/immutable/chunks/0-590d6e0c.js similarity index 87% rename from _app/immutable/chunks/0-d0a6196e.js rename to _app/immutable/chunks/0-590d6e0c.js index e3d6999..7ec7202 100644 --- a/_app/immutable/chunks/0-d0a6196e.js +++ b/_app/immutable/chunks/0-590d6e0c.js @@ -1,5 +1,5 @@ import { _ } from "./_layout-68f6d432.js"; -import { default as default2 } from "../components/pages/_layout.svelte-2f842b9f.js"; +import { default as default2 } from "../components/pages/_layout.svelte-b01be7cb.js"; export { default2 as component, _ as universal diff --git a/_app/immutable/chunks/2-c0e96414.js b/_app/immutable/chunks/2-1c881355.js similarity index 83% rename from _app/immutable/chunks/2-c0e96414.js rename to _app/immutable/chunks/2-1c881355.js index 30cef29..8dd17bf 100644 --- a/_app/immutable/chunks/2-c0e96414.js +++ b/_app/immutable/chunks/2-1c881355.js @@ -1,4 +1,4 @@ -import { default as default2 } from "../components/pages/_page.svelte-faad47a7.js"; +import { default as default2 } from "../components/pages/_page.svelte-3b0d8dc2.js"; export { default2 as component }; diff --git a/_app/immutable/components/pages/_layout.svelte-2f842b9f.js b/_app/immutable/components/pages/_layout.svelte-b01be7cb.js similarity index 100% rename from _app/immutable/components/pages/_layout.svelte-2f842b9f.js rename to _app/immutable/components/pages/_layout.svelte-b01be7cb.js diff --git a/_app/immutable/components/pages/_page.svelte-faad47a7.js b/_app/immutable/components/pages/_page.svelte-3b0d8dc2.js similarity index 96% rename from _app/immutable/components/pages/_page.svelte-faad47a7.js rename to _app/immutable/components/pages/_page.svelte-3b0d8dc2.js index c1a00f9..d269d66 100644 --- a/_app/immutable/components/pages/_page.svelte-faad47a7.js +++ b/_app/immutable/components/pages/_page.svelte-3b0d8dc2.js @@ -156,13 +156,13 @@ function create_each_block$1(ctx) { ctx[5].twitter )); attr(a0, "target", "_blank"); - attr(div1, "class", "mt-4 speaker-name animate-speaker"); + attr(div1, "class", "mt-4 speaker-name animate-speaker text-xl"); attr(a1, "href", a1_href_value = twitterLink( /*item*/ ctx[5].twitter )); attr(a1, "class", "hover:underline animate-speaker"); - attr(div2, "class", "text-base text-mild"); + attr(div2, "class", "text-lg text-mild"); attr(div3, "class", div3_class_value = "hover:bg-white hover:text-black p-2 " + /*size*/ (ctx[1] === "small" ? "w-2/3 sm:w-48" : "w-2/3 sm:w-64") + " person-item"); }, @@ -461,9 +461,9 @@ function create_each_block_4(ctx) { this.h(); }, h() { - attr(div0, "class", "text-2xl animate-topic"); - attr(div1, "class", "mt-4 text-lg markdown"); - attr(div2, "class", "bg-[#0d1117] hover:text-black hover:bg-white px-4 py-6"); + attr(div0, "class", "text-2xl animate-section"); + attr(div1, "class", "mt-4 text-lg text-mild markdown"); + attr(div2, "class", "bg-[#0d1117] hover:text-black hover:bg-white px-4 py-6 topic-item"); }, m(target, anchor) { insert_hydration(target, div2, anchor); @@ -478,8 +478,8 @@ function create_each_block_4(ctx) { dispose = listen( div2, "mouseenter", - /*animateTopic*/ - ctx[1] + /*animateSection*/ + ctx[1](35) ); mounted = true; } @@ -580,6 +580,7 @@ function create_each_block_3(ctx) { let t0; let td1; let div; + let span; let t1_value = ( /*pi*/ ctx[11].title + "" @@ -595,6 +596,8 @@ function create_each_block_3(ctx) { let t4; let t5; let current; + let mounted; + let dispose; let if_block = ( /*pi*/ ctx[11].desc && create_if_block_2(ctx) @@ -606,6 +609,7 @@ function create_each_block_3(ctx) { t0 = space(); td1 = element("td"); div = element("div"); + span = element("span"); t1 = text(t1_value); t2 = space(); t3 = text(t3_value); @@ -626,7 +630,10 @@ function create_each_block_3(ctx) { var td1_nodes = children(td1); div = claim_element(td1_nodes, "DIV", { class: true }); var div_nodes = children(div); - t1 = claim_text(div_nodes, t1_value); + span = claim_element(div_nodes, "SPAN", { class: true }); + var span_nodes = children(span); + t1 = claim_text(span_nodes, t1_value); + span_nodes.forEach(detach); t2 = claim_space(div_nodes); t3 = claim_text(div_nodes, t3_value); div_nodes.forEach(detach); @@ -640,6 +647,7 @@ function create_each_block_3(ctx) { }, h() { attr(td0, "class", "text-right time xl:whitespace-nowrap sm:w-16 xl:w-36"); + attr(span, "class", "animate-section"); attr(div, "class", "text-xl"); attr(td1, "class", "text-left"); attr(tr, "class", ""); @@ -651,7 +659,8 @@ function create_each_block_3(ctx) { append_hydration(tr, t0); append_hydration(tr, td1); append_hydration(td1, div); - append_hydration(div, t1); + append_hydration(div, span); + append_hydration(span, t1); append_hydration(div, t2); append_hydration(div, t3); append_hydration(td1, t4); @@ -659,6 +668,15 @@ function create_each_block_3(ctx) { if_block.m(td1, null); append_hydration(tr, t5); current = true; + if (!mounted) { + dispose = listen( + tr, + "mouseenter", + /*animateSection*/ + ctx[1](35) + ); + mounted = true; + } }, p(ctx2, dirty) { var _a2; @@ -714,6 +732,8 @@ function create_each_block_3(ctx) { detach(tr); if (if_block) if_block.d(); + mounted = false; + dispose(); } }; } @@ -865,6 +885,8 @@ function create_each_block_1(ctx) { let t5; let t6; let current; + let mounted; + let dispose; let each_value_2 = ( /*tt*/ ctx[5].includes @@ -933,8 +955,8 @@ function create_each_block_1(ctx) { this.h(); }, h() { - attr(div0, "class", "text-3xl uppercase"); - attr(div1, "class", "text-xl mt-6 font-bold"); + attr(div0, "class", "text-3xl uppercase animate-section"); + attr(div1, "class", "text-xl mt-6 font-bold animate-section"); attr(ul, "class", "mt-6 text-lg text-left list-disc px-6"); attr(div2, "class", "bg-[#0d1117] hover:border-0 py-10 px-10 hover:text-black hover:bg-white"); }, @@ -958,6 +980,15 @@ function create_each_block_1(ctx) { if_block1.m(div2, null); append_hydration(div2, t6); current = true; + if (!mounted) { + dispose = listen( + div2, + "mouseenter", + /*animateSection*/ + ctx[1](40) + ); + mounted = true; + } }, p(ctx2, dirty) { if ((!current || dirty & /*data*/ @@ -1045,6 +1076,8 @@ function create_each_block_1(ctx) { if_block0.d(); if (if_block1) if_block1.d(); + mounted = false; + dispose(); } }; } @@ -1061,6 +1094,8 @@ function create_each_block(ctx) { let sveltemarkdown; let t2; let current; + let mounted; + let dispose; sveltemarkdown = new SvelteMarkdown({ props: { source: ( /*fi*/ ctx[2].text @@ -1093,7 +1128,7 @@ function create_each_block(ctx) { this.h(); }, h() { - attr(div0, "class", "text-2xl font-bold mb-6"); + attr(div0, "class", "text-2xl font-bold mb-6 animate-section"); attr(div1, "class", "text-lg markdown"); attr(div2, "class", "py-10 px-4 hover:bg-white hover:text-black"); }, @@ -1106,6 +1141,15 @@ function create_each_block(ctx) { mount_component(sveltemarkdown, div1, null); append_hydration(div2, t2); current = true; + if (!mounted) { + dispose = listen( + div2, + "mouseenter", + /*animateSection*/ + ctx[1](15) + ); + mounted = true; + } }, p(ctx2, dirty) { if ((!current || dirty & /*data*/ @@ -1133,6 +1177,8 @@ function create_each_block(ctx) { if (detaching) detach(div2); destroy_component(sveltemarkdown); + mounted = false; + dispose(); } }; } @@ -1233,6 +1279,8 @@ function create_fragment(ctx) { let t30; let div29; let current; + let mounted; + let dispose; document.title = title_value = /*data*/ ctx[0].config.title + " | " + /*data*/ ctx[0].config.date; @@ -1742,6 +1790,10 @@ function create_fragment(ctx) { each_blocks[i].m(div29, null); } current = true; + if (!mounted) { + dispose = listen(button, "mouseenter", animateText); + mounted = true; + } }, p(ctx2, [dirty]) { if ((!current || dirty & /*data*/ @@ -1782,7 +1834,7 @@ function create_fragment(ctx) { sveltemarkdown_changes.source = /*data*/ ctx2[0].config.intro; sveltemarkdown.$set(sveltemarkdown_changes); - if (dirty & /*animateTopic, data*/ + if (dirty & /*animateSection, data*/ 3) { each_value_4 = /*data*/ ctx2[0].config.themes; @@ -1825,8 +1877,8 @@ function create_fragment(ctx) { peoplelist1_changes.people = /*data*/ ctx2[0].config.people; peoplelist1.$set(peoplelist1_changes); - if (dirty & /*data*/ - 1) { + if (dirty & /*animateSection, data*/ + 3) { each_value_3 = /*data*/ ctx2[0].config.program; let i; @@ -1857,8 +1909,8 @@ function create_fragment(ctx) { 1) && t24_value !== (t24_value = /*data*/ ctx2[0].config.ticketsIntro + "")) set_data(t24, t24_value); - if (dirty & /*data*/ - 1) { + if (dirty & /*animateSection, data*/ + 3) { each_value_1 = /*data*/ ctx2[0].config.tickets; let i; @@ -1884,8 +1936,8 @@ function create_fragment(ctx) { 1) && t27_value !== (t27_value = /*data*/ ctx2[0].config.ticketsNote + "")) set_data(t27, t27_value); - if (dirty & /*data*/ - 1) { + if (dirty & /*animateSection, data*/ + 3) { each_value = /*data*/ ctx2[0].config.faq; let i; @@ -1992,22 +2044,26 @@ function create_fragment(ctx) { if (detaching) detach(div31); destroy_each(each_blocks, detaching); + mounted = false; + dispose(); } }; } const func = (x) => x; function instance($$self, $$props, $$invalidate) { let { data } = $$props; - function animateTopic(el) { - for (const e of el.target.getElementsByClassName("animate-topic")) { - animateText({ target: e }); - } + function animateSection(interval = 50) { + return (el) => { + for (const e of el.target.getElementsByClassName("animate-section")) { + animateText({ target: e }, interval); + } + }; } $$self.$$set = ($$props2) => { if ("data" in $$props2) $$invalidate(0, data = $$props2.data); }; - return [data, animateTopic]; + return [data, animateSection]; } class Page extends SvelteComponent { constructor(options) { diff --git a/_app/immutable/start-cbc8d0d8.js b/_app/immutable/start-a0a7a3db.js similarity index 99% rename from _app/immutable/start-cbc8d0d8.js rename to _app/immutable/start-a0a7a3db.js index 7502e91..617e2a6 100644 --- a/_app/immutable/start-cbc8d0d8.js +++ b/_app/immutable/start-a0a7a3db.js @@ -900,9 +900,9 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) { }; const matchers = {}; const nodes = [ - () => __vitePreload(() => import("./chunks/0-d0a6196e.js"), true ? ["./chunks/0-d0a6196e.js","./chunks/_layout-68f6d432.js","./components/pages/_layout.svelte-2f842b9f.js","./chunks/index-858fda85.js","./chunks/helpers-a9b07fa3.js","./assets/_layout-59390a36.css"] : void 0, import.meta.url), + () => __vitePreload(() => import("./chunks/0-590d6e0c.js"), true ? ["./chunks/0-590d6e0c.js","./chunks/_layout-68f6d432.js","./components/pages/_layout.svelte-b01be7cb.js","./chunks/index-858fda85.js","./chunks/helpers-a9b07fa3.js","./assets/_layout-90b2abc7.css"] : void 0, import.meta.url), () => __vitePreload(() => import("./chunks/1-a708a445.js"), true ? ["./chunks/1-a708a445.js","./components/error.svelte-b9497535.js","./chunks/index-858fda85.js","./chunks/singletons-1811cedd.js"] : void 0, import.meta.url), - () => __vitePreload(() => import("./chunks/2-c0e96414.js"), true ? ["./chunks/2-c0e96414.js","./components/pages/_page.svelte-faad47a7.js","./chunks/index-858fda85.js","./chunks/helpers-a9b07fa3.js"] : void 0, import.meta.url) + () => __vitePreload(() => import("./chunks/2-1c881355.js"), true ? ["./chunks/2-1c881355.js","./components/pages/_page.svelte-3b0d8dc2.js","./chunks/index-858fda85.js","./chunks/helpers-a9b07fa3.js"] : void 0, import.meta.url) ]; const server_loads = []; const dictionary = { diff --git a/_app/version.json b/_app/version.json index a6bfe95..a68b580 100644 --- a/_app/version.json +++ b/_app/version.json @@ -1 +1 @@ -{"version":"1676578882700"} \ No newline at end of file +{"version":"1676580084670"} \ No newline at end of file diff --git a/index.html b/index.html index 1940c46..967af6b 100644 --- a/index.html +++ b/index.html @@ -6,15 +6,15 @@ - - + + - + -
We need to protect our privacy, and that's why we're coming together on June 5 to Prague to sit down and discuss different aspects of privacy in the Web3 industry - how we can help shape it and make it more accessible - building a shared culture. The conference complements the research project Web3Privacy Now and was created by joining forces with the production team of the privacy hackathon ETHBrno.
Imagine a Full-Stack Privacy -> how would it even look alike!
We need resilient privacy-preserving, p2p communication layers for Web3, that allows free and uncensored human-to-human, machine-to-machine or hybrid communication.
For solarpunk to succeed it must integrate the lunarpunk unconscious. The only hope for solarpunk is to go dark. Do you agree?
Ethical crypto vs global cyberwars agenda
Why are privacy-blockchain socials so toxic? We should stop hating each other & work together
The network state-as-a-grassroots movement
Easy onboarding to cryptocurrencies without KYC/AML using peer-to-peer tools is crucial for privacy. What options do we have today?
Imagine a Full-Stack Privacy -> how would it even look alike!
We need resilient privacy-preserving, p2p communication layers for Web3, that allows free and uncensored human-to-human, machine-to-machine or hybrid communication.
For solarpunk to succeed it must integrate the lunarpunk unconscious. The only hope for solarpunk is to go dark. Do you agree?
Ethical crypto vs global cyberwars agenda
Why are privacy-blockchain socials so toxic? We should stop hating each other & work together
The network state-as-a-grassroots movement
Easy onboarding to cryptocurrencies without KYC/AML using peer-to-peer tools is crucial for privacy. What options do we have today?
time | topic | |
---|---|---|
9:00 | - 9:30Registration & networking
+ | Registration & networking
|
9:30 | - 9:35Welcome to Web3Privacy ― TBA
+ | Welcome to Web3Privacy ― TBA
Welcoming visitors to our private-centric research, community and conference |
9:35 | - 10:55Talks I.
+ | Talks I.
|
10:55 | - 11:2025min Coffee Break
+ | 25min Coffee Break
|
11:25 | - 12:40Talks II.
+ | Talks II.
|
12:40 | - 14:00Lunch & Networking
+ | Lunch & Networking
|
14:00 | - 15:40Talks III.
+ | Talks III.
|
15:40 | - 16:0525min Coffee Break
+ | 25min Coffee Break
|
16:10 | - 18:30Talks IV.
+ | Talks IV.
|
18:30 | - 18:35Closing Remarks ― TBA
+ | Closing Remarks ― TBA
|
18:30 | - 20:00Networking & Drinks
+ | Networking & Drinks
|
20:00 | - 4:00#Lunarpunk party
+ | #Lunarpunk party
Enjoy our afterparty in Lunarpunk style with quality Prague rave DJs, which will take place in the same venue until the morning (4am). |
Apply for a discount →
(as independent developer, student, privacy advocate, open-source contributor..)
Web3privacy now is a research project aimed at building a culture of privacy industry in web3: the most extensive database of privacy-enhancing solutions, the framework for PEDApps ideation, use-cases database & many more.
Prague Blockchain Week 2023 (#PBW23) is a decentralized gathering of all people interested in cryptocurrencies and related topics. It consists of many independent events across Jun 2 - 11, including conferences, hackathons, workshops, community meetups, as well as various parties and happy hours.
Our event is for anyone interested in privacy topics in the Web3 industry. There will be space for about 300 enthusiasts.
Yes, we plan do both. Livestream of the whole conference and recordings of the lectures will be publicly available.
Tickets will go on sale in early March 2023. Payment will be possible via credit card, Bitcoin (on-chain), Lightning Network or possibly other cryptocurrencies.
Yes, we do! We offer discounts (up to 75%) for independent developers, students and especially active privacy advocates or open-source contributors to private protocols or tools. If you are interested in a discount, please fill out this form.
We would like to have most of the cost of the event covered by admission fees directly from visitors. We want to be independent of sponsors and reduce the pressure to make it a "sales" or marketing event.
Venue X10 (full name "Divadlo X10") is located in the centre of Prague near the metro station Národní Třída (Line B) and Můstek (Line A,C). The address is Charvátova 10/39, Prague 1, 110 00 (Google Maps).
This web is built with SvelteKit and is open-source under CC0 license