diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
new file mode 100644
index 0000000..d530771
--- /dev/null
+++ b/.github/workflows/check.yml
@@ -0,0 +1,25 @@
+name: Frontend Check
+
+on: [push, pull_request]
+
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Bun
+ # Uses the official action to install Bun
+ uses: oven-sh/setup-bun@v2
+ with:
+ bun-version: latest
+
+ - name: Install dependencies
+ run: bun install
+ working-directory: ./frontend
+
+ - name: Run check script
+ # This executes the "check" script defined in your package.json
+ run: bun run check
+ working-directory: ./frontend
\ No newline at end of file
diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml
index f69deb4..26418fa 100644
--- a/.github/workflows/frontend.yml
+++ b/.github/workflows/frontend.yml
@@ -3,6 +3,10 @@ name: Docker Build InfoSections frontend
on:
push:
branches: [ release ]
+ workflow_run:
+ workflows: ["Frontend Check"]
+ types:
+ - completed
jobs:
build:
diff --git a/frontend/src/lib/ACalToAdd.svelte b/frontend/src/lib/ACalToAdd.svelte
index b7415cb..9d3bdcf 100644
--- a/frontend/src/lib/ACalToAdd.svelte
+++ b/frontend/src/lib/ACalToAdd.svelte
@@ -1,5 +1,5 @@
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-content.svelte b/frontend/src/lib/components/ui/item/item-content.svelte
new file mode 100644
index 0000000..2649b79
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-content.svelte
@@ -0,0 +1,23 @@
+
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-description.svelte b/frontend/src/lib/components/ui/item/item-description.svelte
new file mode 100644
index 0000000..a15632b
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-description.svelte
@@ -0,0 +1,23 @@
+
+
+a:hover]:text-primary line-clamp-2 font-normal [&>a]:underline [&>a]:underline-offset-4",
+ className
+ )}
+ {...restProps}
+>
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-footer.svelte b/frontend/src/lib/components/ui/item/item-footer.svelte
new file mode 100644
index 0000000..cd68c38
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-footer.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-group.svelte b/frontend/src/lib/components/ui/item/item-group.svelte
new file mode 100644
index 0000000..3e58e36
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-group.svelte
@@ -0,0 +1,21 @@
+
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-header.svelte b/frontend/src/lib/components/ui/item/item-header.svelte
new file mode 100644
index 0000000..e1116f4
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-header.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-media.svelte b/frontend/src/lib/components/ui/item/item-media.svelte
new file mode 100644
index 0000000..45def5a
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-media.svelte
@@ -0,0 +1,42 @@
+
+
+
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item-separator.svelte b/frontend/src/lib/components/ui/item/item-separator.svelte
new file mode 100644
index 0000000..992541c
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-separator.svelte
@@ -0,0 +1,19 @@
+
+
+
diff --git a/frontend/src/lib/components/ui/item/item-title.svelte b/frontend/src/lib/components/ui/item/item-title.svelte
new file mode 100644
index 0000000..c9a0f9b
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item-title.svelte
@@ -0,0 +1,20 @@
+
+
+
+ {@render children?.()}
+
diff --git a/frontend/src/lib/components/ui/item/item.svelte b/frontend/src/lib/components/ui/item/item.svelte
new file mode 100644
index 0000000..8eff328
--- /dev/null
+++ b/frontend/src/lib/components/ui/item/item.svelte
@@ -0,0 +1,61 @@
+
+
+
+
+{#if child}
+ {@render child({ props: mergedProps })}
+{:else}
+
+ {@render mergedProps.children?.()}
+
+{/if}
diff --git a/frontend/src/lib/dashboard/DashboardHeader.svelte b/frontend/src/lib/dashboard/DashboardHeader.svelte
index 6ff6b17..ead2eba 100644
--- a/frontend/src/lib/dashboard/DashboardHeader.svelte
+++ b/frontend/src/lib/dashboard/DashboardHeader.svelte
@@ -1,7 +1,8 @@
-
-
- {#each metrics as metric (`metric${metric.name}`)}
-
-
-
-
-
-
{metric.value}
-
{metric.name}
-
{metric.description}
-
-
-
- {/each}
-
\ No newline at end of file
diff --git a/frontend/src/lib/dashboard/home/QuickActions.svelte b/frontend/src/lib/dashboard/home/QuickActions.svelte
deleted file mode 100644
index b9077ca..0000000
--- a/frontend/src/lib/dashboard/home/QuickActions.svelte
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- Quick Actions
- Create new views or sync events
-
-
-
- {#each actions as action (`anaction${action.name}`)}
-
-
- {action.name}
-
- {/each}
- {#if (await getMyIntegrations()).filter((integration) => integration.service === "planningcenter").length > 0}
-
-
- Sync Planning Center
-
- {/if}
-
-
-
\ No newline at end of file
diff --git a/frontend/src/lib/dashboard/home/SyncStatus.svelte b/frontend/src/lib/dashboard/home/SyncStatus.svelte
deleted file mode 100644
index c169158..0000000
--- a/frontend/src/lib/dashboard/home/SyncStatus.svelte
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
- Sync Status
- Planning Center connection
-
-
-
-
-
-
Connected
-
Last sync: {lastSyncTAgo}
-
-
-
-
-
- Events fetched
- {eventsAmount}
-
-
- Next sync
- In {lastSyncTIn}
-
-
-
-
-
- Sync Now
-
-
-
\ No newline at end of file
diff --git a/frontend/src/lib/dashboard/home/UpcomingEvents.svelte b/frontend/src/lib/dashboard/home/UpcomingEvents.svelte
deleted file mode 100644
index 0f3cd08..0000000
--- a/frontend/src/lib/dashboard/home/UpcomingEvents.svelte
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
- Todays Events
- Fetched from Planning Center
-
-
-
-
- {#if todaysEvents.length > 0}
- {#each todaysEvents as event (`upcomingevent${event.id}`)}
-
-
-
-
-
-
-
{event.name}
-
- {#if event.location}
-
-
- {event.location.split("-")[0]}
-
- {/if}
-
-
-
-
-
-
-
- {/each}
- {:else}
-
-
-
-
-
- No Events Today
-
- You haven't created any events for today. Get started by going to planning center and create an event.
-
-
-
-
- Create Event
-
-
-
-
- Learn More
-
-
-
- {/if}
-
-
-
\ No newline at end of file
diff --git a/frontend/src/lib/dashboard/home/YourViews.svelte b/frontend/src/lib/dashboard/home/YourViews.svelte
deleted file mode 100644
index 83b8554..0000000
--- a/frontend/src/lib/dashboard/home/YourViews.svelte
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
-
-
-
- Your Views
- Event lists, Image Feeds, and Calendars you've created
-
-
-
-
-
-
\ No newline at end of file
diff --git a/frontend/src/lib/dashboard/homePage/FeatureSummary.svelte b/frontend/src/lib/dashboard/homePage/FeatureSummary.svelte
index 1066b38..95977eb 100644
--- a/frontend/src/lib/dashboard/homePage/FeatureSummary.svelte
+++ b/frontend/src/lib/dashboard/homePage/FeatureSummary.svelte
@@ -1,7 +1,8 @@