From f607be97f25bcefd39219e8b3800f6ad2253ce8e Mon Sep 17 00:00:00 2001 From: unbedenklich <106080544+unbedenklich@users.noreply.github.com> Date: Sat, 31 Jan 2026 22:22:21 +0100 Subject: [PATCH] added tags. deleted videocard. deleted sidebarbutton. --- .claude/settings.local.json | 60 +++++++------ src/lib/cards/ATProtoCollectionsCard/index.ts | 4 +- src/lib/cards/BigSocialCard/index.ts | 11 ++- src/lib/cards/BlueskyMediaCard/index.ts | 3 +- src/lib/cards/BlueskyPostCard/index.ts | 3 +- src/lib/cards/BlueskyProfileCard/index.ts | 1 + src/lib/cards/ButtonCard/index.ts | 4 +- src/lib/cards/DrawCard/index.ts | 3 +- src/lib/cards/EmbedCard/index.ts | 2 +- src/lib/cards/EventCard/index.ts | 4 +- src/lib/cards/FluidTextCard/index.ts | 3 +- src/lib/cards/GIFCard/index.ts | 3 +- src/lib/cards/GameCards/DinoGameCard/index.ts | 3 +- src/lib/cards/GameCards/TetrisCard/index.ts | 3 +- src/lib/cards/GitHubProfileCard/index.ts | 2 +- src/lib/cards/GuestbookCard/index.ts | 3 +- src/lib/cards/ImageCard/index.ts | 1 + src/lib/cards/LatestBlueskyPostCard/index.ts | 3 +- src/lib/cards/LinkCard/index.ts | 1 + src/lib/cards/LivestreamCard/index.ts | 3 +- src/lib/cards/MapCard/index.ts | 2 +- src/lib/cards/Model3DCard/index.ts | 2 - src/lib/cards/PhotoGalleryCard/index.ts | 2 +- src/lib/cards/PopfeedReviews/index.ts | 3 +- src/lib/cards/SectionCard/index.ts | 1 + .../SpecialCards/UpdatedBlentos/index.ts | 1 + src/lib/cards/SpotifyCard/index.ts | 4 +- .../StandardSiteDocumentListCard/index.ts | 4 +- src/lib/cards/StatusphereCard/index.ts | 4 +- src/lib/cards/TealFMPlaysCard/index.ts | 3 +- src/lib/cards/TextCard/index.ts | 1 + src/lib/cards/TimerCard/index.ts | 2 +- src/lib/cards/VCardCard/index.ts | 3 +- src/lib/cards/VideoCard/VideoCard.svelte | 90 ------------------- .../cards/VideoCard/VideoCardSettings.svelte | 54 ----------- src/lib/cards/VideoCard/index.ts | 65 -------------- src/lib/cards/YoutubeVideoCard/index.ts | 1 + src/lib/cards/index.ts | 2 - src/lib/cards/types.ts | 7 -- src/lib/website/EditableWebsite.svelte | 2 +- 40 files changed, 73 insertions(+), 300 deletions(-) delete mode 100644 src/lib/cards/VideoCard/VideoCard.svelte delete mode 100644 src/lib/cards/VideoCard/VideoCardSettings.svelte delete mode 100644 src/lib/cards/VideoCard/index.ts diff --git a/.claude/settings.local.json b/.claude/settings.local.json index e55cacf..8345922 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,31 +1,33 @@ { - "permissions": { - "allow": [ - "Bash(pnpm check:*)", - "mcp__ide__getDiagnostics", - "mcp__plugin_svelte_svelte__svelte-autofixer", - "mcp__plugin_svelte_svelte__list-sections", - "Bash(pkill:*)", - "Bash(timeout 8 pnpm dev:*)", - "Bash(git checkout:*)", - "Bash(npx svelte-kit:*)", - "Bash(ls:*)", - "Bash(pnpm format:*)", - "Bash(pnpm add:*)", - "WebSearch", - "WebFetch(domain:github.com)", - "WebFetch(domain:flipclockjs.com)", - "WebFetch(domain:codepen.io)", - "WebFetch(domain:flo-bit.dev)", - "Bash(pnpm install)", - "Bash(pnpm install:*)", - "Bash(pnpm config:*)", - "Bash(lsof:*)", - "Bash(pnpm dev)", - "Bash(pnpm exec svelte-kit:*)", - "Bash(pnpm build:*)", - "Bash(pnpm remove:*)", - "Bash(grep:*)" - ] - } + "permissions": { + "allow": [ + "Bash(pnpm check:*)", + "mcp__ide__getDiagnostics", + "mcp__plugin_svelte_svelte__svelte-autofixer", + "mcp__plugin_svelte_svelte__list-sections", + "Bash(pkill:*)", + "Bash(timeout 8 pnpm dev:*)", + "Bash(git checkout:*)", + "Bash(npx svelte-kit:*)", + "Bash(ls:*)", + "Bash(pnpm format:*)", + "Bash(pnpm add:*)", + "WebSearch", + "WebFetch(domain:github.com)", + "WebFetch(domain:flipclockjs.com)", + "WebFetch(domain:codepen.io)", + "WebFetch(domain:flo-bit.dev)", + "Bash(pnpm install)", + "Bash(pnpm install:*)", + "Bash(pnpm config:*)", + "Bash(lsof:*)", + "Bash(pnpm dev)", + "Bash(pnpm exec svelte-kit:*)", + "Bash(pnpm build:*)", + "Bash(pnpm remove:*)", + "Bash(grep:*)", + "Bash(find:*)", + "Bash(npx prettier:*)" + ] + } } diff --git a/src/lib/cards/ATProtoCollectionsCard/index.ts b/src/lib/cards/ATProtoCollectionsCard/index.ts index 5039a41..6c3c452 100644 --- a/src/lib/cards/ATProtoCollectionsCard/index.ts +++ b/src/lib/cards/ATProtoCollectionsCard/index.ts @@ -19,11 +19,9 @@ export const ATProtoCollectionsCardDefinition = { item.w = 4; item.mobileW = 8; }, - sidebarButtonText: 'Atmosphere Collections', - name: 'ATProto Collections', + keywords: ['bluesky', 'records', 'pds', 'data'], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'atprotocollections' }; diff --git a/src/lib/cards/BigSocialCard/index.ts b/src/lib/cards/BigSocialCard/index.ts index 9152911..1438182 100644 --- a/src/lib/cards/BigSocialCard/index.ts +++ b/src/lib/cards/BigSocialCard/index.ts @@ -53,9 +53,18 @@ export const BigSocialCardDefinition = { urlHandlerPriority: 1, canHaveLabel: true, + keywords: [ + 'twitter', + 'instagram', + 'tiktok', + 'youtube', + 'github', + 'discord', + 'linkedin', + 'mastodon' + ], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'bigsocial' }; import { diff --git a/src/lib/cards/BlueskyMediaCard/index.ts b/src/lib/cards/BlueskyMediaCard/index.ts index 79c40d6..122b205 100644 --- a/src/lib/cards/BlueskyMediaCard/index.ts +++ b/src/lib/cards/BlueskyMediaCard/index.ts @@ -7,12 +7,11 @@ export const BlueskyMediaCardDefinition = { contentComponent: BlueskyMediaCard, createNew: () => {}, creationModalComponent: CreateBlueskyMediaCardModal, - sidebarButtonText: 'Bluesky Media', canHaveLabel: true, + keywords: ['bsky', 'atproto', 'media', 'feed'], groups: ['Media'], name: 'Video/Image from Bluesky', icon: `` - } as CardDefinition & { type: 'blueskyMedia' }; diff --git a/src/lib/cards/BlueskyPostCard/index.ts b/src/lib/cards/BlueskyPostCard/index.ts index 7a0de5b..ec40ae8 100644 --- a/src/lib/cards/BlueskyPostCard/index.ts +++ b/src/lib/cards/BlueskyPostCard/index.ts @@ -9,7 +9,6 @@ export const BlueskyPostCardDefinition = { type: 'blueskyPost', contentComponent: BlueskyPostCard, creationModalComponent: CreateBlueskyPostCardModal, - sidebarButtonText: 'Bluesky Post', createNew: (card) => { card.cardType = 'blueskyPost'; card.w = 4; @@ -65,7 +64,7 @@ export const BlueskyPostCardDefinition = { minW: 4, name: 'Bluesky Post', + keywords: ['skeet', 'bsky', 'atproto', 'post'], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'blueskyPost' }; diff --git a/src/lib/cards/BlueskyProfileCard/index.ts b/src/lib/cards/BlueskyProfileCard/index.ts index 6e67e95..e88f249 100644 --- a/src/lib/cards/BlueskyProfileCard/index.ts +++ b/src/lib/cards/BlueskyProfileCard/index.ts @@ -4,5 +4,6 @@ import BlueskyProfileCard from './BlueskyProfileCard.svelte'; export const BlueskyProfileCardDefinition = { type: 'blueskyProfile', contentComponent: BlueskyProfileCard, + keywords: ['bsky', 'atproto', 'account', 'user'], createNew: () => {} } as CardDefinition & { type: 'blueskyProfile' }; diff --git a/src/lib/cards/ButtonCard/index.ts b/src/lib/cards/ButtonCard/index.ts index baa6e38..7daab27 100644 --- a/src/lib/cards/ButtonCard/index.ts +++ b/src/lib/cards/ButtonCard/index.ts @@ -8,8 +8,6 @@ export const ButtonCardDefinition: CardDefinition = { contentComponent: ButtonCard, editingContentComponent: EditingButtonCard, settingsComponent: ButtonCardSettings, - sidebarButtonText: 'Button', - createNew: (card) => { card.cardData = { text: 'Click me' @@ -29,8 +27,8 @@ export const ButtonCardDefinition: CardDefinition = { maxW: 8, maxH: 4, + keywords: ['cta', 'action', 'click', 'link'], groups: ['Utilities'], name: 'Button', icon: `` - }; diff --git a/src/lib/cards/DrawCard/index.ts b/src/lib/cards/DrawCard/index.ts index 0c03e46..7809ffe 100644 --- a/src/lib/cards/DrawCard/index.ts +++ b/src/lib/cards/DrawCard/index.ts @@ -7,7 +7,6 @@ export const DrawCardDefinition = { name: 'Drawing', contentComponent: DrawCard, editingContentComponent: EditingDrawCard, - sidebarButtonText: 'Draw', defaultColor: 'base', allowSetColor: true, minW: 2, @@ -25,7 +24,7 @@ export const DrawCardDefinition = { }; }, + keywords: ['paint', 'sketch', 'doodle', 'canvas', 'art'], groups: ['Visual'], icon: `` - } as CardDefinition & { type: 'draw' }; diff --git a/src/lib/cards/EmbedCard/index.ts b/src/lib/cards/EmbedCard/index.ts index e137a41..120ea57 100644 --- a/src/lib/cards/EmbedCard/index.ts +++ b/src/lib/cards/EmbedCard/index.ts @@ -20,7 +20,7 @@ export const EmbedCardDefinition = { // return item; // }, name: 'Embed', + keywords: ['iframe', 'widget', 'html', 'website'], groups: ['Media'], icon: `` - } as CardDefinition & { type: 'embed' }; diff --git a/src/lib/cards/EventCard/index.ts b/src/lib/cards/EventCard/index.ts index f6e857e..6fcd610 100644 --- a/src/lib/cards/EventCard/index.ts +++ b/src/lib/cards/EventCard/index.ts @@ -42,8 +42,6 @@ export const EventCardDefinition = { type: 'event', contentComponent: EventCard, creationModalComponent: CreateEventCardModal, - sidebarButtonText: 'Event', - createNew: (card) => { card.w = 4; card.h = 4; @@ -114,7 +112,7 @@ export const EventCardDefinition = { name: 'Event', + keywords: ['calendar', 'meetup', 'schedule', 'date', 'rsvp'], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'event' }; diff --git a/src/lib/cards/FluidTextCard/index.ts b/src/lib/cards/FluidTextCard/index.ts index 90e78ce..0a5a685 100644 --- a/src/lib/cards/FluidTextCard/index.ts +++ b/src/lib/cards/FluidTextCard/index.ts @@ -20,13 +20,12 @@ export const FluidTextCardDefinition = { }, creationModalComponent: CreateFluidTextCardModal, settingsComponent: FluidTextCardSettings, - sidebarButtonText: 'Fluid Text', defaultColor: 'transparent', allowSetColor: true, minW: 2, + keywords: ['animated', 'big text', 'headline', 'display'], groups: ['Visual'], name: 'Fluid Text', icon: `` - } as CardDefinition & { type: 'fluid-text' }; diff --git a/src/lib/cards/GIFCard/index.ts b/src/lib/cards/GIFCard/index.ts index 4ac337b..eeffac0 100644 --- a/src/lib/cards/GIFCard/index.ts +++ b/src/lib/cards/GIFCard/index.ts @@ -21,7 +21,6 @@ export const GifCardDefinition = { card.mobileH = 4; }, settingsComponent: GifCardSettings, - sidebarButtonText: 'GIF', defaultColor: 'transparent', allowSetColor: false, minW: 1, @@ -47,7 +46,7 @@ export const GifCardDefinition = { urlHandlerPriority: 5, name: 'GIF', + keywords: ['animation', 'giphy', 'meme', 'tenor'], groups: ['Media'], icon: `` - } as CardDefinition & { type: 'gif' }; diff --git a/src/lib/cards/GameCards/DinoGameCard/index.ts b/src/lib/cards/GameCards/DinoGameCard/index.ts index d3fc7bc..2546769 100644 --- a/src/lib/cards/GameCards/DinoGameCard/index.ts +++ b/src/lib/cards/GameCards/DinoGameCard/index.ts @@ -5,7 +5,6 @@ import DinoGameCard from './DinoGameCard.svelte'; export const DinoGameCardDefinition = { type: 'dino-game', contentComponent: DinoGameCard as unknown as Component, - sidebarButtonText: 'Dino Game', allowSetColor: true, createNew: (card) => { card.w = 4; @@ -16,8 +15,8 @@ export const DinoGameCardDefinition = { }, canHaveLabel: true, + keywords: ['chrome', 'dinosaur', 'runner', 'fun'], groups: ['Games'], name: 'Dino Game', icon: `` - } as CardDefinition & { type: 'dino-game' }; diff --git a/src/lib/cards/GameCards/TetrisCard/index.ts b/src/lib/cards/GameCards/TetrisCard/index.ts index 4c5ea4a..5b75cbd 100644 --- a/src/lib/cards/GameCards/TetrisCard/index.ts +++ b/src/lib/cards/GameCards/TetrisCard/index.ts @@ -8,7 +8,6 @@ import type { Component } from 'svelte'; export const TetrisCardDefinition = { type: 'tetris', contentComponent: TetrisCard as unknown as Component, - sidebarButtonText: 'Tetris', allowSetColor: true, defaultColor: 'accent', createNew: (card) => { @@ -21,9 +20,9 @@ export const TetrisCardDefinition = { maxH: 10, canHaveLabel: true, + keywords: ['blocks', 'puzzle', 'game', 'fun'], groups: ['Games'], name: 'Tetris', icon: `` - } as CardDefinition & { type: 'tetris' }; diff --git a/src/lib/cards/GitHubProfileCard/index.ts b/src/lib/cards/GitHubProfileCard/index.ts index 290b01d..a6bb54d 100644 --- a/src/lib/cards/GitHubProfileCard/index.ts +++ b/src/lib/cards/GitHubProfileCard/index.ts @@ -54,9 +54,9 @@ export const GithubProfileCardDefitition = { }, name: 'Github Profile', + keywords: ['developer', 'code', 'repos', 'contributions'], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'githubProfile' }; function getGitHubUsername(url: string | undefined): string | undefined { diff --git a/src/lib/cards/GuestbookCard/index.ts b/src/lib/cards/GuestbookCard/index.ts index bade01a..48e8c4f 100644 --- a/src/lib/cards/GuestbookCard/index.ts +++ b/src/lib/cards/GuestbookCard/index.ts @@ -7,7 +7,6 @@ export const GuestbookCardDefinition = { type: 'guestbook', contentComponent: GuestbookCard, creationModalComponent: CreateGuestbookCardModal, - sidebarButtonText: 'Guestbook', createNew: (card) => { card.w = 4; card.h = 6; @@ -61,7 +60,7 @@ export const GuestbookCardDefinition = { return results; }, name: 'Guestbook', + keywords: ['comments', 'visitors', 'message', 'sign'], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'guestbook' }; diff --git a/src/lib/cards/ImageCard/index.ts b/src/lib/cards/ImageCard/index.ts index 9e14944..e968d43 100644 --- a/src/lib/cards/ImageCard/index.ts +++ b/src/lib/cards/ImageCard/index.ts @@ -46,6 +46,7 @@ export const ImageCardDefinition = { canHaveLabel: true, + keywords: ['photo', 'picture', 'upload', 'png', 'jpg'], groups: ['Core'], icon: ` { const authorFeed = await getAuthorFeed({ did, filter: 'posts_no_replies', limit: 2 }); @@ -22,7 +21,7 @@ export const LatestBlueskyPostCardDefinition = { name: 'Latest Bluesky Post', + keywords: ['bsky', 'atproto', 'recent', 'feed'], groups: ['Social'], icon: `` - } as CardDefinition & { type: 'latestPost' }; diff --git a/src/lib/cards/LinkCard/index.ts b/src/lib/cards/LinkCard/index.ts index 1fa7ec3..9cfec81 100644 --- a/src/lib/cards/LinkCard/index.ts +++ b/src/lib/cards/LinkCard/index.ts @@ -41,6 +41,7 @@ export const LinkCardDefinition = { }, urlHandlerPriority: 0, + keywords: ['url', 'website', 'href', 'webpage'], groups: ['Core'], icon: ` { card.w = 4; card.h = 4; @@ -82,9 +81,9 @@ export const LivestreamCardDefitition = { urlHandlerPriority: 5, name: 'Latest Livestream (stream.place)', + keywords: ['stream', 'live', 'broadcast', 'video'], groups: ['Media'], icon: `` - } as CardDefinition & { type: 'latestLivestream' }; export const LivestreamEmbedCardDefitition = { diff --git a/src/lib/cards/MapCard/index.ts b/src/lib/cards/MapCard/index.ts index e0149a1..f6b6d67 100644 --- a/src/lib/cards/MapCard/index.ts +++ b/src/lib/cards/MapCard/index.ts @@ -6,7 +6,6 @@ import MapCardSettings from './MapCardSettings.svelte'; export const MapCardDefinition = { type: 'mapLocation', contentComponent: MapCard, - sidebarButtonText: 'Map', createNew: (item) => { item.w = 4; item.h = 4; @@ -19,6 +18,7 @@ export const MapCardDefinition = { canHaveLabel: true, settingsComponent: MapCardSettings, + keywords: ['location', 'place', 'address', 'geo'], groups: ['Core'], name: 'Map', diff --git a/src/lib/cards/Model3DCard/index.ts b/src/lib/cards/Model3DCard/index.ts index 3ad0663..3c52e32 100644 --- a/src/lib/cards/Model3DCard/index.ts +++ b/src/lib/cards/Model3DCard/index.ts @@ -7,8 +7,6 @@ export const Model3DCardDefinition = { type: 'model3d', contentComponent: Model3DCard, creationModalComponent: CreateModel3DCardModal, - sidebarButtonText: '3D Model', - createNew: (card) => { card.w = 4; card.h = 4; diff --git a/src/lib/cards/PhotoGalleryCard/index.ts b/src/lib/cards/PhotoGalleryCard/index.ts index b4a7e18..1706d6d 100644 --- a/src/lib/cards/PhotoGalleryCard/index.ts +++ b/src/lib/cards/PhotoGalleryCard/index.ts @@ -68,6 +68,6 @@ export const PhotoGalleryCardDefinition = { return itemsData; }, + keywords: ['album', 'photos', 'slideshow', 'images', 'carousel'], minW: 4 - //sidebarButtonText: 'Photo Gallery' } as CardDefinition & { type: 'photoGallery' }; diff --git a/src/lib/cards/PopfeedReviews/index.ts b/src/lib/cards/PopfeedReviews/index.ts index 5d3b376..5beaa2f 100644 --- a/src/lib/cards/PopfeedReviews/index.ts +++ b/src/lib/cards/PopfeedReviews/index.ts @@ -17,11 +17,10 @@ export const PopfeedReviewsCardDefinition = { return data; }, minH: 3, - sidebarButtonText: 'Popfeed Reviews', canHaveLabel: true, + keywords: ['movies', 'tv', 'film', 'reviews', 'ratings', 'popfeed'], groups: ['Media'], name: 'Movie and TV Reviews', icon: `` - } as CardDefinition & { type: 'recentPopfeedReviews' }; diff --git a/src/lib/cards/SectionCard/index.ts b/src/lib/cards/SectionCard/index.ts index 2bb2097..9b70041 100644 --- a/src/lib/cards/SectionCard/index.ts +++ b/src/lib/cards/SectionCard/index.ts @@ -30,6 +30,7 @@ export const SectionCardDefinition = { settingsComponent: SectionCardSettings, name: 'Heading', + keywords: ['title', 'section', 'header', 'divider'], groups: ['Core'], icon: `>; export const UpdatedBlentosCardDefitition = { type: 'updatedBlentos', contentComponent: UpdatedBlentosCard, + keywords: ['feed', 'updates', 'recent', 'activity'], loadData: async (items, { cache }) => { try { const response = await fetch( diff --git a/src/lib/cards/SpotifyCard/index.ts b/src/lib/cards/SpotifyCard/index.ts index f9efe88..4e1cdc2 100644 --- a/src/lib/cards/SpotifyCard/index.ts +++ b/src/lib/cards/SpotifyCard/index.ts @@ -8,8 +8,6 @@ export const SpotifyCardDefinition = { type: cardType, contentComponent: SpotifyCard, creationModalComponent: CreateSpotifyCardModal, - sidebarButtonText: 'Spotify Embed', - createNew: (item) => { item.cardType = cardType; item.cardData = {}; @@ -42,9 +40,9 @@ export const SpotifyCardDefinition = { minW: 4, minH: 5, + keywords: ['music', 'song', 'playlist', 'album', 'podcast'], groups: ['Media'], icon: `` - } as CardDefinition & { type: typeof cardType }; // Match Spotify album and playlist URLs diff --git a/src/lib/cards/StandardSiteDocumentListCard/index.ts b/src/lib/cards/StandardSiteDocumentListCard/index.ts index 09426df..53b2153 100644 --- a/src/lib/cards/StandardSiteDocumentListCard/index.ts +++ b/src/lib/cards/StandardSiteDocumentListCard/index.ts @@ -42,11 +42,9 @@ export const StandardSiteDocumentListCardDefinition = { return records; }, - sidebarButtonText: 'site.standard.document list', - name: 'Blog Posts', + keywords: ['articles', 'writing', 'blog', 'posts', 'frontpage'], groups: ['Content'], icon: `` - } as CardDefinition & { type: 'site.standard.document list' }; diff --git a/src/lib/cards/StatusphereCard/index.ts b/src/lib/cards/StatusphereCard/index.ts index 0a13563..3630bcc 100644 --- a/src/lib/cards/StatusphereCard/index.ts +++ b/src/lib/cards/StatusphereCard/index.ts @@ -23,8 +23,6 @@ export const StatusphereCardDefinition = { return data[0]; }, - sidebarButtonText: 'Statusphere', - upload: async (item) => { if (item.cardData.hasUpdate) { await putRecord({ @@ -50,9 +48,9 @@ export const StatusphereCardDefinition = { canHaveLabel: true, name: 'Emoji', + keywords: ['status', 'mood', 'reaction', 'statusphere'], groups: ['Media'], icon: `` - } as CardDefinition & { type: 'statusphere' }; export function emojiToNotoAnimatedWebp(emoji: string | undefined): string | undefined { diff --git a/src/lib/cards/TealFMPlaysCard/index.ts b/src/lib/cards/TealFMPlaysCard/index.ts index e1efd16..0473ed8 100644 --- a/src/lib/cards/TealFMPlaysCard/index.ts +++ b/src/lib/cards/TealFMPlaysCard/index.ts @@ -21,12 +21,11 @@ export const TealFMPlaysCardDefinition = { return data; }, minW: 4, - sidebarButtonText: 'teal.fm Plays', canHaveLabel: true, + keywords: ['music', 'scrobble', 'listening', 'songs'], name: 'Teal.fm Plays', groups: ['Media'], icon: `` - } as CardDefinition & { type: 'recentTealFMPlays' }; diff --git a/src/lib/cards/TextCard/index.ts b/src/lib/cards/TextCard/index.ts index ff7c4b9..5815701 100644 --- a/src/lib/cards/TextCard/index.ts +++ b/src/lib/cards/TextCard/index.ts @@ -18,6 +18,7 @@ export const TextCardDefinition = { name: 'Text', + keywords: ['paragraph', 'note', 'write', 'content', 'description', 'bio'], groups: ['Core'], icon: `` - } as CardDefinition & { type: 'vcard' }; diff --git a/src/lib/cards/VideoCard/VideoCard.svelte b/src/lib/cards/VideoCard/VideoCard.svelte deleted file mode 100644 index 633daf9..0000000 --- a/src/lib/cards/VideoCard/VideoCard.svelte +++ /dev/null @@ -1,90 +0,0 @@ - - -{#key item.cardData.video || item.cardData.objectUrl} - -{/key} -{#if item.cardData.href} - - - {item.cardData.hrefText ?? 'Learn more'} - - -
- - - -
- -{/if} diff --git a/src/lib/cards/VideoCard/VideoCardSettings.svelte b/src/lib/cards/VideoCard/VideoCardSettings.svelte deleted file mode 100644 index 3f6cb48..0000000 --- a/src/lib/cards/VideoCard/VideoCardSettings.svelte +++ /dev/null @@ -1,54 +0,0 @@ - - - { - if (event.code === 'Enter') { - updateLink(); - event.preventDefault(); - } - }} - placeholder="Enter link" -/> - diff --git a/src/lib/cards/VideoCard/index.ts b/src/lib/cards/VideoCard/index.ts deleted file mode 100644 index 2138edb..0000000 --- a/src/lib/cards/VideoCard/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { uploadBlob } from '$lib/atproto'; -import type { CardDefinition } from '../types'; -import VideoCard from './VideoCard.svelte'; -import VideoCardSettings from './VideoCardSettings.svelte'; - -async function getAspectRatio(videoBlob: Blob): Promise<{ width: number; height: number }> { - return new Promise((resolve, reject) => { - const video = document.createElement('video'); - video.preload = 'metadata'; - - video.onloadedmetadata = () => { - URL.revokeObjectURL(video.src); - resolve({ - width: video.videoWidth, - height: video.videoHeight - }); - }; - - video.onerror = () => { - URL.revokeObjectURL(video.src); - reject(new Error('Failed to load video metadata')); - }; - - video.src = URL.createObjectURL(videoBlob); - }); -} - -export const VideoCardDefinition = { - type: 'video', - contentComponent: VideoCard, - createNew: (card) => { - card.cardType = 'video'; - card.cardData = { - video: null, - href: '' - }; - }, - upload: async (item) => { - if (item.cardData.blob) { - const blob = item.cardData.blob; - const aspectRatio = await getAspectRatio(blob); - const uploadedBlob = await uploadBlob({ blob }); - - item.cardData.video = { - $type: 'app.bsky.embed.video', - video: uploadedBlob, - aspectRatio - }; - - delete item.cardData.blob; - } - - if (item.cardData.objectUrl) { - URL.revokeObjectURL(item.cardData.objectUrl); - delete item.cardData.objectUrl; - } - - return item; - }, - settingsComponent: VideoCardSettings, - - name: 'Video', - groups: ['Media'], - icon: `` -} as CardDefinition & { type: 'video' }; diff --git a/src/lib/cards/YoutubeVideoCard/index.ts b/src/lib/cards/YoutubeVideoCard/index.ts index 5bd3f01..b6dc9df 100644 --- a/src/lib/cards/YoutubeVideoCard/index.ts +++ b/src/lib/cards/YoutubeVideoCard/index.ts @@ -55,6 +55,7 @@ export const YoutubeCardDefinition = { }, name: 'Youtube Video', + keywords: ['video', 'yt', 'stream', 'watch'], groups: ['Media'], icon: ` void; }; -export type SidebarComponentProps = { - onclick: () => void; -}; - export type ContentComponentProps = { item: Item; isEditing?: boolean; @@ -33,9 +29,6 @@ export type CardDefinition = { upload?: (item: Item) => Promise; // optionally upload some other data needed for this card - // has to be set for a card to appear in the sidebar - sidebarButtonText?: string; - // if this component exists, a settings button with a popover will be shown containing this component settingsComponent?: Component; diff --git a/src/lib/website/EditableWebsite.svelte b/src/lib/website/EditableWebsite.svelte index 8672bd1..abfd441 100644 --- a/src/lib/website/EditableWebsite.svelte +++ b/src/lib/website/EditableWebsite.svelte @@ -256,7 +256,7 @@ } } - const sidebarItems = AllCardDefinitions.filter((cardDef) => cardDef.sidebarButtonText); + const sidebarItems = AllCardDefinitions.filter((cardDef) => cardDef.name); let debugPoint = $state({ x: 0, y: 0 }); -- 2.51.2