-
- {#snippet label()}
- Title*
+
+
+
+ {#snippet title()}
+ Create a Funding Goal
{/snippet}
- {#snippet input()}
-
+ {#snippet info()}
+ Request contributions for your fundraiser.
{/snippet}
-
-
+
+
{#snippet label()}
- Details*
+ Title*
{/snippet}
{#snippet input()}
-
-
-
+
{/snippet}
-
+
+
+ {#snippet label()}
+ Details*
+ {/snippet}
+ {#snippet input()}
+
+
+
+ {/snippet}
+
+
+
+
+
+ {#snippet label()}
+ Goal Amount (sats)*
+ {/snippet}
+ {#snippet input()}
+
+ {/snippet}
+
+
+
-
-
- {#snippet label()}
- Goal Amount (sats)*
- {/snippet}
- {#snippet input()}
-
- {/snippet}
-
-
-
-
+
-
+
diff --git a/src/app/components/InfoBunker.svelte b/src/app/components/InfoBunker.svelte
index 7d857b85..a5a44fca 100644
--- a/src/app/components/InfoBunker.svelte
+++ b/src/app/components/InfoBunker.svelte
@@ -1,39 +1,42 @@
-
-
- {#snippet title()}
- What is a bunker link?
- {/snippet}
-
-
- Nostr uses "keys" instead of passwords
- to identify users. This allows users to own their social identity instead of renting it from a tech
- company, and can bring it with them from app to app.
-
-
- A good way to manage your keys is to use a remote signing application. These apps can hold your
- keys and log you in remotely to as many applications as you like, without risking loss or theft
- of your keys.
-
-
- One way to log in with a remote signer is using a "bunker link" which is more secure and
- decentralized than other solutions. Check your signer for a link beginning with "bunker://",
- copy it into {PLATFORM_NAME}, and you should be good to go!
-
-
- If you don't have a signer yet, nsec.app
- is a great way to get started. You can find more signers on nostrapps.com.
-
-
-
+
+
+ {#snippet title()}
+ What is a bunker link?
+ {/snippet}
+
+
+ Nostr uses "keys" instead of passwords
+ to identify users. This allows users to own their social identity instead of renting it from a tech
+ company, and can bring it with them from app to app.
+
+
+ A good way to manage your keys is to use a remote signing application. These apps can hold
+ your keys and log you in remotely to as many applications as you like, without risking loss or
+ theft of your keys.
+
+
+ One way to log in with a remote signer is using a "bunker link" which is more secure and
+ decentralized than other solutions. Check your signer for a link beginning with "bunker://",
+ copy it into {PLATFORM_NAME}, and you should be good to go!
+
+
+ If you don't have a signer yet, nsec.app
+ is a great way to get started. You can find more signers on nostrapps.com.
+
+
+
diff --git a/src/app/components/InfoHandle.svelte b/src/app/components/InfoHandle.svelte
index fd29544c..dedeaeec 100644
--- a/src/app/components/InfoHandle.svelte
+++ b/src/app/components/InfoHandle.svelte
@@ -1,29 +1,32 @@
-
-
- {#snippet title()}
- What is a nostr address?
- {/snippet}
-
-
- {PLATFORM_NAME} hosts spaces on the Nostr protocol. Nostr uses "nostr addresses" to make it easier for people to find you, without having to
- memorize your public key (your user id).
-
-
- There are several providers of nostr addresses, including several clients. You can find a list
- and more information on nostr.how.
-
-
-
+
+
+ {#snippet title()}
+ What is a nostr address?
+ {/snippet}
+
+
+ {PLATFORM_NAME} hosts spaces on the Nostr protocol. Nostr uses "nostr addresses" to make it easier for people to find you, without having to
+ memorize your public key (your user id).
+
+
+ There are several providers of nostr addresses, including several clients. You can find a list
+ and more information on nostr.how.
+
+
+
diff --git a/src/app/components/InfoKeys.svelte b/src/app/components/InfoKeys.svelte
index c0258273..fd4b5feb 100644
--- a/src/app/components/InfoKeys.svelte
+++ b/src/app/components/InfoKeys.svelte
@@ -5,6 +5,8 @@
import CheckCircle from "@assets/icons/check-circle.svg?dataurl"
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
import KeyRecoveryRequest from "@app/components/KeyRecoveryRequest.svelte"
@@ -16,29 +18,37 @@
const startRecoveryRequest = () => pushModal(KeyRecoveryRequest)
-
-
- {#snippet title()}
- What is a private key?
- {/snippet}
-
-
- Most online services keep track of users by giving them a username and password. This gives the
- service total control over their users, allowing them to ban them at any time, or
- sell their activity.
-
-
- On Nostr, you control your own
- identity and social data, through the magic of cryptography. The basic idea is that you have a
- public key, which acts as your user ID, and a
- private key which allows you to prove your identity.
-
- {#if $session?.email}
+
+
+
+ {#snippet title()}
+ What is a private key?
+ {/snippet}
+
- It's very important to keep private keys safe, but this can sometimes be tricky, which is why {PLATFORM_NAME}
- supports a traditional account-based login for new users.
+ Most online services keep track of users by giving them a username and password. This gives
+ the service total control over their users, allowing them to ban them at any time,
+ or sell their activity.
- If you'd like to switch to self-custody, please click below to get started.
+
+ On Nostr, you control your
+ own identity and social data, through the magic of cryptography. The basic idea is that you
+ have a
+ public key, which acts as your user ID, and a
+ private key which allows you to prove your identity.
+
+ {#if $session?.email}
+
+ It's very important to keep private keys safe, but this can sometimes be tricky, which is
+ why {PLATFORM_NAME}
+ supports a traditional account-based login for new users.
+
+ If you'd like to switch to self-custody, please click below to get started.
+ {:else}
+
+ {/if}
+
+ {#if $session?.email}
- {:else}
-
{/if}
-
+
diff --git a/src/app/components/InfoNostr.svelte b/src/app/components/InfoNostr.svelte
index 274e201f..6fc130d2 100644
--- a/src/app/components/InfoNostr.svelte
+++ b/src/app/components/InfoNostr.svelte
@@ -1,30 +1,33 @@
-
-
- {#snippet title()}
- What is nostr?
- {/snippet}
-
-
- Nostr is way to build social apps that
- talk to each other. Users own their social identity instead of renting it from a tech company, and
- can take it with them.
-
-
- If you'd like to learn more about what other apps exist in the nostr ecosystem, please visit nostrapps.com.
-
-
- To learn more about how to manage your keys, or to set up an account, try
- nosta.me.
-
-
-
+
+
+ {#snippet title()}
+ What is nostr?
+ {/snippet}
+
+
+ Nostr is way to build social apps that
+ talk to each other. Users own their social identity instead of renting it from a tech company, and
+ can take it with them.
+
+
+ If you'd like to learn more about what other apps exist in the nostr ecosystem, please visit nostrapps.com.
+
+
+ To learn more about how to manage your keys, or to set up an account, try
+ nosta.me.
+
+
+
diff --git a/src/app/components/InfoRelay.svelte b/src/app/components/InfoRelay.svelte
index 05c5baeb..110b7fbe 100644
--- a/src/app/components/InfoRelay.svelte
+++ b/src/app/components/InfoRelay.svelte
@@ -2,25 +2,32 @@
import Button from "@lib/components/Button.svelte"
import Link from "@lib/components/Link.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte"
+ import ModalFooter from "@lib/components/ModalFooter.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import {PLATFORM_NAME} from "@app/core/state"
-
-
- {#snippet title()}
- What is a relay?
- {/snippet}
-
-
- {PLATFORM_NAME} hosts spaces on the Nostr protocol. Nostr uses "relays" to host data, which are special-purpose servers that speak nostr's
- language. This means that anyone can host their own data, making the web more decentralized and
- resilient.
-
-
- Different relays have different policies for access control and content retention. Be sure to
- double check that you have access to the relays you try to use by visiting their website.
-
-
-
+
+
+
+ {#snippet title()}
+ What is a relay?
+ {/snippet}
+
+
+ {PLATFORM_NAME} hosts spaces on the Nostr protocol. Nostr uses "relays" to host data, which are special-purpose servers that speak nostr's
+ language. This means that anyone can host their own data, making the web more decentralized
+ and resilient.
+
+
+ Different relays have different policies for access control and content retention. Be sure to
+ double check that you have access to the relays you try to use by visiting their website.
+
+
+
+
+
+
diff --git a/src/app/components/InfoSignatures.svelte b/src/app/components/InfoSignatures.svelte
index 12c48964..de7edfa1 100644
--- a/src/app/components/InfoSignatures.svelte
+++ b/src/app/components/InfoSignatures.svelte
@@ -1,32 +1,35 @@
-
-
- {#snippet title()}
- What are digital signatures?
- {/snippet}
-
-
- Most online services ask their users to trust them that they're being honest, and they usually
- are. However, traditional social media platforms have the ability to create forged content that can appear to be genuinely authored, but which are actually
- counterfeit.
-
-
- On Nostr, all your content is authenticated
- using digital signatures, which cryptographically tie a particular person to a
- given post or message.
-
-
- The result is that you don't normally have to trust service providers not to tamper with the
- information flowing through the network — instead, your client software can prove that a given
- piece of data is authentic.
-
-
-
+
+
+ {#snippet title()}
+ What are digital signatures?
+ {/snippet}
+
+
+ Most online services ask their users to trust them that they're being honest, and they usually
+ are. However, traditional social media platforms have the ability to create forged content that can appear to be genuinely authored, but which are actually
+ counterfeit.
+
+
+ On Nostr, all your content is authenticated
+ using digital signatures, which cryptographically tie a particular person to
+ a given post or message.
+
+
+ The result is that you don't normally have to trust service providers not to tamper with the
+ information flowing through the network — instead, your client software can prove that a given
+ piece of data is authentic.
+
+
+
diff --git a/src/app/components/InfoZapperError.svelte b/src/app/components/InfoZapperError.svelte
index 73c72f4e..db2ab03f 100644
--- a/src/app/components/InfoZapperError.svelte
+++ b/src/app/components/InfoZapperError.svelte
@@ -5,6 +5,8 @@
import Button from "@lib/components/Button.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import ProfileLink from "@app/components/ProfileLink.svelte"
const {pubkey} = $props()
@@ -14,24 +16,26 @@
const back = () => history.back()
-
-
- {#snippet title()}
- Unable to Zap
- {/snippet}
-
-
- Zapping isn't possible right now because
- {#if $zapper}
- their zap receiver isn't correctly set up.
- {:else}
- they don't currently have a zap receiver set up.
- {/if}
-
+
+
+
+ {#snippet title()}
+ Unable to Zap
+ {/snippet}
+
+
+ Zapping isn't possible right now because
+ {#if $zapper}
+ their zap receiver isn't correctly set up.
+ {:else}
+ they don't currently have a zap receiver set up.
+ {/if}
+
+
-
+
diff --git a/src/app/components/KeyDownload.svelte b/src/app/components/KeyDownload.svelte
index 645491d3..2d4b7967 100644
--- a/src/app/components/KeyDownload.svelte
+++ b/src/app/components/KeyDownload.svelte
@@ -10,6 +10,8 @@
import Icon from "@lib/components/Icon.svelte"
import Field from "@lib/components/Field.svelte"
import Button from "@lib/components/Button.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
import {pushToast} from "@app/util/toast"
@@ -104,49 +106,51 @@
let didDownload = $state(false)
-
+
diff --git a/src/app/components/KeyRecoveryConfirm.svelte b/src/app/components/KeyRecoveryConfirm.svelte
index 8ea3526f..d75bf425 100644
--- a/src/app/components/KeyRecoveryConfirm.svelte
+++ b/src/app/components/KeyRecoveryConfirm.svelte
@@ -9,6 +9,8 @@
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
import KeyDownload from "@app/components/KeyDownload.svelte"
@@ -81,24 +83,26 @@
let input = $state("")
-
+
diff --git a/src/app/components/KeyRecoveryRequest.svelte b/src/app/components/KeyRecoveryRequest.svelte
index 2048de3c..e9441dc1 100644
--- a/src/app/components/KeyRecoveryRequest.svelte
+++ b/src/app/components/KeyRecoveryRequest.svelte
@@ -8,6 +8,8 @@
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
import {pushModal} from "@app/util/modal"
@@ -39,23 +41,25 @@
let loading = $state(false)
-
+
diff --git a/src/app/components/Landing.svelte b/src/app/components/Landing.svelte
index b3f674d0..8e2962ec 100644
--- a/src/app/components/Landing.svelte
+++ b/src/app/components/Landing.svelte
@@ -4,7 +4,8 @@
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
import Link from "@lib/components/Link.svelte"
- import Dialog from "@lib/components/Dialog.svelte"
+ import Modal from "@lib/components/Modal.svelte"
+ import ModalBody from "@lib/components/ModalBody.svelte"
import CardButton from "@lib/components/CardButton.svelte"
import LogIn from "@app/components/LogIn.svelte"
import SignUp from "@app/components/SignUp.svelte"
@@ -16,8 +17,8 @@
const signUp = () => pushModal(SignUp)
-