From a1fd61535cfa36326b435c627020c3dceb3239e5 Mon Sep 17 00:00:00 2001
From: Florian <45694132+flo-bit@users.noreply.github.com>
Date: Wed, 6 May 2026 19:30:16 +0200
Subject: [PATCH] pt 2
---
apps/web/package.json | 3 +-
apps/web/src/app.css | 2 +
apps/web/src/lib/atproto/index.ts | 2 +-
apps/web/src/lib/components/EventList.svelte | 2 +-
apps/web/src/lib/components/editor/adapter.ts | 165 ++++++++----
apps/web/src/lib/contrail.ts | 33 +--
apps/web/src/lib/event-types.ts | 47 +---
apps/web/src/routes/(app)/+page.svelte | 2 +-
.../src/routes/(app)/calendar/+page.svelte | 2 +-
apps/web/src/routes/(app)/create/+page.svelte | 2 +-
.../src/routes/(app)/p/[actor]/+page.svelte | 2 +-
.../(app)/p/[actor]/e/[rkey]/+page.svelte | 5 +-
.../p/[actor]/e/[rkey]/edit/+page.svelte | 2 +-
.../p/[actor]/e/[rkey]/og.png/+server.ts | 2 +-
.../p/[actor]/e/[rkey]/s/[skey]/+page.svelte | 4 +-
.../(app)/p/[actor]/e/calendar/+server.ts | 12 +-
.../ScheduleEventCell.svelte | 4 +-
apps/web/src/routes/embed/create/+page.svelte | 4 +-
.../embed/full/[actor]/[rkey]/+page.svelte | 5 +-
apps/web/svelte.config.js | 3 +
packages/ui/package.json | 34 ++-
.../ui/src}/DatePicker.svelte | 0
.../ui/src}/DateTimePicker.svelte | 2 +-
.../ui/src}/EventAttendees.svelte | 2 +-
.../ui/src}/EventCard.svelte | 4 +-
.../ui/src}/EventComments.svelte | 0
.../ui/src}/EventEditor.svelte | 43 ++--
.../ui/src}/EventRsvp.svelte | 29 ++-
.../ui/src}/EventView.svelte | 30 +--
.../ui/src}/ImageDropper.svelte | 0
.../components => packages/ui/src}/Map.svelte | 0
.../ui/src}/PostToBlueskyModal.svelte | 13 +-
.../ui/src}/ShareModal.svelte | 4 +-
.../ui/src}/ThemeApply.svelte | 2 +-
.../ui/src}/ThemeBackground.svelte | 2 +-
.../ui/src}/ThemePicker.svelte | 2 +-
.../ui/src}/ThumbnailPresets.svelte | 0
.../ui/src}/TimePicker.svelte | 0
.../ui/src}/TimezonePicker.svelte | 0
.../ui/src}/VodPlayer.svelte | 0
.../ui/src}/VodTranscript.svelte | 0
packages/ui/src/atproto-helpers.ts | 91 +++++++
packages/ui/src/cal/helper.ts | 19 ++
packages/ui/src/cal/ical.ts | 238 ++++++++++++++++++
packages/ui/src/cal/sanitize.ts | 28 +++
packages/ui/src/contrail.ts | 64 +++++
.../lib => packages/ui/src}/date-format.ts | 0
.../ui/src}/editor/LinksSection.svelte | 2 +-
.../ui/src}/editor/LocationSection.svelte | 0
.../ui/src}/editor/RecurringModal.svelte | 7 +-
.../ui/src}/editor/ThemeSection.svelte | 4 +-
.../ui/src}/editor/ThumbnailSection.svelte | 4 +-
packages/ui/src/editor/adapter.ts | 76 ++++++
.../ui/src}/editor/save.ts | 29 ++-
.../ui/src}/editor/types.ts | 0
packages/ui/src/event-types.ts | 61 +++++
.../event-view/AddToCalendarButton.svelte | 4 +-
.../ui/src}/event-view/EventBadges.svelte | 0
.../ui/src}/event-view/EventDateBlock.svelte | 0
.../ui/src}/event-view/EventHostedBy.svelte | 2 +-
.../ui/src}/event-view/EventLinksList.svelte | 0
.../src}/event-view/EventLocationBlock.svelte | 0
.../src}/event-view/EventLocationMap.svelte | 2 +-
.../ui/src}/event-view/InviteShareFlow.svelte | 16 +-
.../src}/event-view/StreamPlacePlayer.svelte | 0
.../ui/src}/event-view/format.ts | 6 +-
packages/ui/src/index.ts | 57 ++++-
.../ui/src}/profile-url.ts | 0
packages/ui/src/theme.ts | 31 +++
.../ui/src}/themes/Blobs.svelte | 0
.../ui/src}/themes/Butterflies.svelte | 2 +-
.../ui/src}/themes/Fireflies.svelte | 2 +-
.../ui/src}/themes/Kaleidoscope.svelte | 2 +-
.../ui/src}/themes/Matrix.svelte | 2 +-
.../ui/src}/themes/Stars.svelte | 2 +-
.../ui/src}/thumbnails/designs.ts | 0
packages/ui/tsconfig.json | 16 +-
pnpm-lock.yaml | 74 +++---
78 files changed, 1013 insertions(+), 298 deletions(-)
rename {apps/web/src/lib/components => packages/ui/src}/DatePicker.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/DateTimePicker.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/EventAttendees.svelte (99%)
rename {apps/web/src/lib/components => packages/ui/src}/EventCard.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/EventComments.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/EventEditor.svelte (94%)
rename {apps/web/src/lib/components => packages/ui/src}/EventRsvp.svelte (91%)
rename {apps/web/src/lib/components => packages/ui/src}/EventView.svelte (93%)
rename {apps/web/src/lib/components => packages/ui/src}/ImageDropper.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/Map.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/PostToBlueskyModal.svelte (93%)
rename {apps/web/src/lib/components => packages/ui/src}/ShareModal.svelte (95%)
rename {apps/web/src/lib/components => packages/ui/src}/ThemeApply.svelte (96%)
rename {apps/web/src/lib/components => packages/ui/src}/ThemeBackground.svelte (94%)
rename {apps/web/src/lib/components => packages/ui/src}/ThemePicker.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/ThumbnailPresets.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/TimePicker.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/TimezonePicker.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/VodPlayer.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/VodTranscript.svelte (100%)
create mode 100644 packages/ui/src/atproto-helpers.ts
create mode 100644 packages/ui/src/cal/helper.ts
create mode 100644 packages/ui/src/cal/ical.ts
create mode 100644 packages/ui/src/cal/sanitize.ts
create mode 100644 packages/ui/src/contrail.ts
rename {apps/web/src/lib => packages/ui/src}/date-format.ts (100%)
rename {apps/web/src/lib/components => packages/ui/src}/editor/LinksSection.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/editor/LocationSection.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/editor/RecurringModal.svelte (97%)
rename {apps/web/src/lib/components => packages/ui/src}/editor/ThemeSection.svelte (90%)
rename {apps/web/src/lib/components => packages/ui/src}/editor/ThumbnailSection.svelte (97%)
create mode 100644 packages/ui/src/editor/adapter.ts
rename {apps/web/src/lib/components => packages/ui/src}/editor/save.ts (89%)
rename {apps/web/src/lib/components => packages/ui/src}/editor/types.ts (100%)
create mode 100644 packages/ui/src/event-types.ts
rename {apps/web/src/lib/components => packages/ui/src}/event-view/AddToCalendarButton.svelte (91%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/EventBadges.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/EventDateBlock.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/EventHostedBy.svelte (97%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/EventLinksList.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/EventLocationBlock.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/EventLocationMap.svelte (97%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/InviteShareFlow.svelte (90%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/StreamPlacePlayer.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/event-view/format.ts (97%)
rename {apps/web/src/lib/atproto => packages/ui/src}/profile-url.ts (100%)
create mode 100644 packages/ui/src/theme.ts
rename {apps/web/src/lib/components => packages/ui/src}/themes/Blobs.svelte (100%)
rename {apps/web/src/lib/components => packages/ui/src}/themes/Butterflies.svelte (99%)
rename {apps/web/src/lib/components => packages/ui/src}/themes/Fireflies.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/themes/Kaleidoscope.svelte (99%)
rename {apps/web/src/lib/components => packages/ui/src}/themes/Matrix.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/themes/Stars.svelte (98%)
rename {apps/web/src/lib/components => packages/ui/src}/thumbnails/designs.ts (100%)
diff --git a/apps/web/package.json b/apps/web/package.json
index c5657f0..ec35fd8 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -46,7 +46,7 @@
"eslint-plugin-svelte": "^3.16.0",
"globals": "^17.4.0",
"svelte": "^5.55.0",
- "svelte-check": "^4.4.5",
+ "svelte-check": "^4.4.8",
"svelte-tiptap": "^3.0.1",
"tailwindcss": "^4.2.2",
"tsx": "^4.21.0",
@@ -60,6 +60,7 @@
"@atcute/bluesky-richtext-parser": "^2.1.1",
"@atcute/jetstream": "^1.1.2",
"@atmo-dev/contrail": "^0.5.0",
+ "@atmo-dev/events-ui": "workspace:*",
"@ethercorps/sveltekit-og": "^4.2.1",
"@foxui/colors": "^0.8.5",
"@foxui/core": "^0.9.1",
diff --git a/apps/web/src/app.css b/apps/web/src/app.css
index 9c3a4ce..ebc7cde 100644
--- a/apps/web/src/app.css
+++ b/apps/web/src/app.css
@@ -3,6 +3,8 @@
@plugin '@tailwindcss/forms';
@plugin '@tailwindcss/typography';
@source "../node_modules/@foxui";
+@source "../node_modules/@atmo-dev/events-ui/dist";
+@source "../../../packages/ui/src";
@custom-variant dark (&:is(.dark *));
diff --git a/apps/web/src/lib/atproto/index.ts b/apps/web/src/lib/atproto/index.ts
index cb5823b..bad3628 100644
--- a/apps/web/src/lib/atproto/index.ts
+++ b/apps/web/src/lib/atproto/index.ts
@@ -1,5 +1,5 @@
export { user, login, signup, logout } from './auth.svelte';
-export { getProfileUrl } from './profile-url';
+export { getProfileUrl } from '@atmo-dev/events-ui';
export {
parseUri,
diff --git a/apps/web/src/lib/components/EventList.svelte b/apps/web/src/lib/components/EventList.svelte
index f9214c6..c1fee09 100644
--- a/apps/web/src/lib/components/EventList.svelte
+++ b/apps/web/src/lib/components/EventList.svelte
@@ -1,7 +1,7 @@
-
+
diff --git a/apps/web/src/routes/(app)/p/[actor]/e/[rkey]/edit/+page.svelte b/apps/web/src/routes/(app)/p/[actor]/e/[rkey]/edit/+page.svelte
index 7218394..479ec01 100644
--- a/apps/web/src/routes/(app)/p/[actor]/e/[rkey]/edit/+page.svelte
+++ b/apps/web/src/routes/(app)/p/[actor]/e/[rkey]/edit/+page.svelte
@@ -1,5 +1,5 @@