- {#if platform === 'instagram'}
-
- {:else if platform === 'facebook'}
-
- {:else if platform === 'twitter' || platform === 'x'}
-
- {:else if platform === 'youtube'}
-
- {:else if platform === 'tiktok'}
-
- {:else if platform === 'linkedin'}
-
- {:else if platform === 'bluesky'}
-
- {:else if platform === 'threads'}
-
- {:else if platform === 'snapchat'}
-
- {:else if platform === 'pinterest'}
-
- {:else if platform === 'twitch'}
-
- {:else if platform === 'discord'}
-
- {:else if platform === 'github'}
-
- {:else if platform === 'spotify'}
-
- {:else if platform === 'reddit'}
-
- {:else if platform === 'whatsapp'}
-
- {:else if platform === 'telegram'}
-
- {:else if platform === 'mastodon'}
-
- {:else}
-
- {/if}
+
+ {@html platformsData[platform].svg}
diff --git a/src/lib/cards/BigSocialCard/CreateBigSocialCardModal.svelte b/src/lib/cards/BigSocialCard/CreateBigSocialCardModal.svelte
index 47f53ac..cc09334 100644
--- a/src/lib/cards/BigSocialCard/CreateBigSocialCardModal.svelte
+++ b/src/lib/cards/BigSocialCard/CreateBigSocialCardModal.svelte
@@ -1,64 +1,12 @@
diff --git a/src/lib/cards/BigSocialCard/SidebarItemBigSocialCard.svelte b/src/lib/cards/BigSocialCard/SidebarItemBigSocialCard.svelte
index 18ec6bc..fa90eee 100644
--- a/src/lib/cards/BigSocialCard/SidebarItemBigSocialCard.svelte
+++ b/src/lib/cards/BigSocialCard/SidebarItemBigSocialCard.svelte
@@ -17,5 +17,5 @@
clip-rule="evenodd"
/>
- Big Social
diff --git a/src/lib/cards/BigSocialCard/index.ts b/src/lib/cards/BigSocialCard/index.ts
index f42f2e3..9435302 100644
--- a/src/lib/cards/BigSocialCard/index.ts
+++ b/src/lib/cards/BigSocialCard/index.ts
@@ -16,11 +16,94 @@ export const BigSocialCardDefinition = {
};
card.w = 2;
card.h = 2;
- card.mobileW = 2;
- card.mobileH = 2;
+ card.mobileW = 4;
+ card.mobileH = 4;
},
- allowSetColor: true,
- defaultColor: 'accent',
- minW: 1,
- minH: 1
+ allowSetColor: false,
+ defaultColor: 'transparent',
+ minW: 2,
+ minH: 2,
+ onUrlHandler: (url, item) => {
+ const platform = detectPlatform(url);
+ if (!platform) return null;
+
+ item.cardData.platform = platform;
+ item.cardData.color = platformsData[platform].hex;
+ item.cardData.href = url;
+
+ return item;
+ }
} as CardDefinition & { type: 'bigsocial' };
+
+export const platformPatterns: Record
= {
+ instagram: /(?:instagram\.com|instagr\.am)/i,
+ facebook: /(?:facebook\.com|fb\.com|fb\.me)/i,
+ twitter: /(?:twitter\.com)/i,
+ x: /(?:x\.com)/i,
+ youtube: /(?:youtube\.com|youtu\.be)/i,
+ tiktok: /(?:tiktok\.com)/i,
+ linkedin: /(?:linkedin\.com)/i,
+ bluesky: /(?:bsky\.app|bsky\.social)/i,
+ threads: /(?:threads\.net)/i,
+ snapchat: /(?:snapchat\.com)/i,
+ pinterest: /(?:pinterest\.com|pin\.it)/i,
+ twitch: /(?:twitch\.tv)/i,
+ discord: /(?:discord\.gg|discord\.com)/i,
+ github: /(?:github\.com)/i,
+ spotify: /(?:spotify\.com|open\.spotify\.com)/i,
+ reddit: /(?:reddit\.com)/i,
+ whatsapp: /(?:whatsapp\.com|wa\.me)/i,
+ telegram: /(?:t\.me|telegram\.org)/i,
+ mastodon: /(?:mastodon\.social|mastodon\.online|mstdn\.social)/i
+};
+
+import {
+ siInstagram,
+ siFacebook,
+ siX,
+ siYoutube,
+ siTiktok,
+ siBluesky,
+ siThreads,
+ siSnapchat,
+ siPinterest,
+ siTwitch,
+ siDiscord,
+ siGithub,
+ siSpotify,
+ siReddit,
+ siWhatsapp,
+ siTelegram,
+ siMastodon,
+ type SimpleIcon
+} from 'simple-icons';
+
+export const platformsData: Record = {
+ instagram: siInstagram,
+ facebook: siFacebook,
+ twitter: siX,
+ x: siX,
+ youtube: siYoutube,
+ tiktok: siTiktok,
+ bluesky: siBluesky,
+ threads: siThreads,
+ snapchat: siSnapchat,
+ pinterest: siPinterest,
+ twitch: siTwitch,
+ discord: siDiscord,
+ github: siGithub,
+ spotify: siSpotify,
+ reddit: siReddit,
+ whatsapp: siWhatsapp,
+ telegram: siTelegram,
+ mastodon: siMastodon
+};
+
+export function detectPlatform(url: string): string | null {
+ for (const [platform, pattern] of Object.entries(platformPatterns)) {
+ if (pattern.test(url)) {
+ return platform;
+ }
+ }
+ return null;
+}
diff --git a/src/lib/cards/LinkCard/EditingLinkCard.svelte b/src/lib/cards/LinkCard/EditingLinkCard.svelte
index dec9c16..b16850a 100644
--- a/src/lib/cards/LinkCard/EditingLinkCard.svelte
+++ b/src/lib/cards/LinkCard/EditingLinkCard.svelte
@@ -1,4 +1,5 @@
+
+
{
+ editor?.commands.focus('end');
+ }}
>
-
+
diff --git a/src/lib/cards/TextCard/TextCard.svelte b/src/lib/cards/TextCard/TextCard.svelte
index 2525ade..c592d20 100644
--- a/src/lib/cards/TextCard/TextCard.svelte
+++ b/src/lib/cards/TextCard/TextCard.svelte
@@ -1,7 +1,7 @@
-
+