From 3ef53919313b63fe0fa06449159cd03853abdc27 Mon Sep 17 00:00:00 2001 From: m1212e <14091540+m1212e@users.noreply.github.com> Date: Tue, 23 Sep 2025 01:42:37 +0200 Subject: [PATCH 01/32] =?UTF-8?q?=F0=9F=9A=A7=20wip:=20maintainance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 9 +- .../workflows/{build_run.yml => build_pr.yml} | 7 +- .../workflows/check_conventional_title_pr.yml | 25 + .github/workflows/{lint.yml => lint_pr.yml} | 2 +- .gitignore | 4 +- .graphqlrc.yaml | 9 - .prettierignore | 7 +- .prettierrc | 3 +- .vscode/daisyui.md | 1884 ----- .vscode/extensions.json | 3 - Dockerfile.node | 2 +- FRONTNED-CHECKLIST.md | 19 - bun.lock | 2105 ++++-- drizzle.config.ts | 9 +- eslint.config.js | 38 +- houdini.config.js | 24 - lefthook-local.yml | 1 - messages/de.json | 3 + .../.github}/ISSUE_TEMPLATE/bug_report.md | 0 .../.github}/ISSUE_TEMPLATE/config.yml | 0 .../.github}/ISSUE_TEMPLATE/documentation.md | 0 .../.github}/ISSUE_TEMPLATE/enhancement.md | 0 .../.github}/ISSUE_TEMPLATE/feature.md | 0 .../.github}/PULL_REQUEST_TEMPLATE/bug_fix.md | 0 .../PULL_REQUEST_TEMPLATE/documentation.md | 0 .../.github}/PULL_REQUEST_TEMPLATE/empty.md | 0 .../PULL_REQUEST_TEMPLATE/enhancement.md | 0 .../.github}/PULL_REQUEST_TEMPLATE/feature.md | 0 {.github => old/.github}/release.yml | 0 .../.github}/workflows/build_image.yml | 0 .../drizzle}/0000_chemical_network.sql | 0 .../drizzle}/0001_romantic_shape.sql | 0 .../drizzle}/0002_panoramic_agent_brand.sql | 0 .../drizzle}/meta/0000_snapshot.json | 0 .../drizzle}/meta/0001_snapshot.json | 0 .../drizzle}/meta/0002_snapshot.json | 0 {drizzle => old/drizzle}/meta/_journal.json | 0 {src => old/src}/api/context.ts | 0 {src => old/src}/api/db/db.ts | 0 {src => old/src}/api/db/relations.ts | 0 {src => old/src}/api/db/reset.ts | 0 {src => old/src}/api/db/schema.ts | 0 {src => old/src}/api/db/seed-data/dev.yaml | 0 {src => old/src}/api/db/seed-data/schema.d.ts | 0 {src => old/src}/api/db/seed-data/schema.json | 0 {src => old/src}/api/db/seedConference.ts | 0 {src => old/src}/api/db/seedUtils.ts | 0 {src => old/src}/api/handlers/agendaItem.ts | 0 {src => old/src}/api/handlers/basics.ts | 0 {src => old/src}/api/handlers/committee.ts | 0 .../src}/api/handlers/committeeMember.ts | 0 {src => old/src}/api/handlers/conference.ts | 0 .../src}/api/handlers/conferenceMember.ts | 0 .../src}/api/handlers/conferenceUser.ts | 0 {src => old/src}/api/handlers/import.ts | 0 .../api/handlers/presenceChangedTimestamp.ts | 0 {src => old/src}/api/handlers/register.ts | 0 .../src}/api/handlers/representation.ts | 0 .../src}/api/handlers/speakerOnList.ts | 0 {src => old/src}/api/handlers/speakersList.ts | 0 {src => old/src}/api/handlers/time.ts | 0 {src => old/src}/api/handlers/user.ts | 0 {src => old/src}/api/rumble.ts | 0 {src => old/src}/api/services/OIDC.ts | 0 {src => old/src}/api/services/isDMUNEmail.ts | 0 old/src/app.css | 114 + old/src/app.d.ts | 18 + old/src/app.html | 41 + {src => old/src}/assets/dmun-stock/bw1.jpg | Bin {src => old/src}/assets/dmun-stock/sh1.jpg | Bin {src => old/src}/assets/dmun-stock/sh2.jpg | Bin .../src}/assets/dmunlogo/logo-weiss.png | Bin {src => old/src}/assets/dmunlogo/logo.png | Bin .../src}/assets/logo/png/chase_logo_blue.png | Bin .../assets/logo/png/chase_logo_blue_text.png | Bin .../src}/assets/logo/png/chase_logo_white.png | Bin .../assets/logo/png/chase_logo_white_text.png | Bin .../logo/png/chase_logo_white_transparent.png | Bin .../src}/assets/logo/svg/chase_logo_blue.svg | 0 .../assets/logo/svg/chase_logo_blue_text.svg | 0 .../src}/assets/logo/svg/chase_logo_white.svg | 0 .../assets/logo/svg/chase_logo_white_text.svg | 0 {src => old/src}/assets/misc/blobs/blob_1.svg | 0 {src => old/src}/assets/misc/blobs/blob_2.svg | 0 {src => old/src}/assets/misc/blobs/blob_3.svg | 0 {src => old/src}/assets/misc/blobs/blob_4.svg | 0 {src => old/src}/assets/misc/blobs/blob_5.svg | 0 {src => old/src}/assets/undraw/404.svg | 0 {src => old/src}/assets/undraw/500.svg | 0 .../src}/assets/undraw/access_denied.svg | 0 .../src}/assets/undraw/around_the_world.svg | 0 {src => old/src}/assets/undraw/cancel.svg | 0 {src => old/src}/assets/undraw/candidate.svg | 0 .../src}/assets/undraw/certificate.svg | 0 .../src}/assets/undraw/delegation_payment.svg | 0 {src => old/src}/assets/undraw/educator.svg | 0 .../src}/assets/undraw/empty_street.svg | 0 {src => old/src}/assets/undraw/feedback.svg | 0 .../src}/assets/undraw/group_payment.svg | 0 {src => old/src}/assets/undraw/letter.svg | 0 {src => old/src}/assets/undraw/new.svg | 0 {src => old/src}/assets/undraw/newspaper.svg | 0 .../src}/assets/undraw/order_confirmed.svg | 0 {src => old/src}/assets/undraw/progress.svg | 0 {src => old/src}/assets/undraw/question.svg | 0 .../src}/assets/undraw/security_lockout.svg | 0 .../src}/assets/undraw/single_payment.svg | 0 {src => old/src}/assets/undraw/sync_files.svg | 0 {src => old/src}/assets/undraw/team-up.svg | 0 {src => old/src}/assets/undraw/team.svg | 0 .../src}/assets/undraw/team_collaboration.svg | 0 .../src}/assets/undraw/the_world_is_mine.svg | 0 {src => old/src}/assets/undraw/verified.svg | 0 {src => old/src}/assets/undraw/voting.svg | 0 {src => old/src}/assets/undraw/warning.svg | 0 {src => old/src}/assets/undraw/world.svg | 0 {src => old/src}/client.ts | 0 old/src/hooks.server.ts | 16 + old/src/hooks.ts | 6 + .../lib/components/AbbreviationInfoBox.svelte | 0 .../lib/components/AdoptionConfetti.svelte | 0 .../lib/components/Alert/PromiseAlert.svelte | 0 .../src}/lib/components/Alert/alert.ts | 0 .../src}/lib/components/BasicCard.svelte | 0 .../src}/lib/components/Combobox.svelte | 0 .../src}/lib/components/CommitteeGrid.svelte | 0 .../src}/lib/components/CurrentTime.svelte | 0 .../src}/lib/components/DevPlaceholder.svelte | 0 {src => old/src}/lib/components/Flag.svelte | 0 {src => old/src}/lib/components/Footer.svelte | 0 .../src}/lib/components/IconInfoBox.svelte | 0 .../src}/lib/components/JoinedButtons.svelte | 0 .../lib/components/LanguageSwitcher.svelte | 0 .../src}/lib/components/Majorities.svelte | 0 {src => old/src}/lib/components/Modal.svelte | 0 .../lib/components/NavbarBurgerMenu.svelte | 0 .../src}/lib/components/Popover.svelte | 0 {src => old/src}/lib/components/Tabs.svelte | 0 .../src}/lib/components/ThemeSwitcher.svelte | 0 .../src}/lib/components/UndrawError.svelte | 0 .../committee/AgendaItemChanger.svelte | 0 .../committee/StateOfDebateChanger.svelte | 0 .../StateOfDebateChangerModal.svelte | 0 .../components/committee/StatusChanger.svelte | 0 .../committee/StatusChangerModal.svelte | 0 .../components/rollCall/ChairRollCall.svelte | 0 .../rollCall/PresentationRollCall.svelte | 0 .../rollCall/ScrollingCountryList.svelte | 0 .../speakersList/ChairSpeakersQueue.svelte | 0 .../speakersList/CurrentSpeaker.svelte | 0 .../components/speakersList/Hourglass.svelte | 0 .../PresentationSpeakersQueue.svelte | 0 .../speakersList/StripesAlert.svelte | 0 .../lib/components/speakersList/Timer.svelte | 0 .../chairControls/AddSpeakers.svelte | 0 .../chairControls/ChairControls.svelte | 0 .../chairControls/MoreOptions.svelte | 0 .../chairControls/NextSpeech.svelte | 0 .../chairControls/SpeechControls.svelte | 0 .../src}/lib/components/toast/BellIcon.svelte | 0 .../src}/lib/components/voting/FlagRow.svelte | 0 .../lib/components/voting/ResultChart.svelte | 0 .../voting/RollCallVotingChair.svelte | 0 .../voting/RollCallVotingPresentation.svelte | 0 .../voting/ShowOfHandsVotingChair.svelte | 0 .../ShowOfHandsVotingPresentation.svelte | 0 .../lib/components/voting/VoteClicker.svelte | 0 .../lib/components/voting/VotingSetup.svelte | 0 .../components/whiteboard/UploadImage.svelte | 0 .../whiteboard/WhiteboardBubbleMenu.svelte | 0 .../whiteboard/WhiteboardEditor.svelte | 0 .../whiteboard/WhiteboardEditorModal.svelte | 0 .../whiteboard/WhiteboardStaticMenu.svelte | 0 .../whiteboard/WhiteboardViewer.svelte | 0 .../whiteboard/whiteboardEditorConfig.ts | 0 {src => old/src}/lib/config/getConfig.ts | 0 {src => old/src}/lib/config/private.ts | 0 {src => old/src}/lib/config/public.ts | 0 .../lib/data/presentationLayoutPresets.ts | 0 .../src}/lib/data/stateOfDebateTemplates.ts | 0 .../helpers/distinguishConferenceMembers.ts | 0 {src => old/src}/lib/helpers/lazy.ts | 0 {src => old/src}/lib/helpers/nanoid.ts | 0 {src => old/src}/lib/helpers/utilityTypes.ts | 0 .../lib/helpers/viewTransitionApi.svelte.ts | 0 old/src/lib/index.ts | 1 + {src => old/src}/lib/local-db/localDB.ts | 0 .../src}/lib/state/serverTime.svelte.ts | 0 {src => old/src}/lib/utils/committeeStatus.ts | 0 {src => old/src}/lib/utils/import.ts | 0 {src => old/src}/lib/utils/media.svelte.ts | 0 .../utils/nationTranslationHelper.svelte.ts | 0 {src => old/src}/lib/utils/theme.svelte.ts | 0 {src => old/src}/lib/utils/toast.ts | 0 .../src}/routes/(pages)/+layout.svelte | 0 {src => old/src}/routes/(pages)/+page.svelte | 0 {src => old/src}/routes/(pages)/Card.svelte | 0 .../src}/routes/(pages)/CardSection.svelte | 0 .../routes/(pages)/ComingSoonRibbon.svelte | 0 .../src}/routes/(pages)/LandingHero.svelte | 0 {src => old/src}/routes/(pages)/Navbar.svelte | 0 .../src}/routes/(pages)/TextSection.svelte | 0 old/src/routes/+layout.svelte | 104 + .../src}/routes/api/graphql/+server.ts | 0 .../src}/routes/api/schemas/import/+server.ts | 0 .../src}/routes/app/(launcher)/+page.gql | 0 .../src}/routes/app/(launcher)/+page.svelte | 0 .../src}/routes/app/(launcher)/+page.ts | 0 .../routes/app/(launcher)/import/+page.svelte | 0 {src => old/src}/routes/app/+layout.server.ts | 0 .../(committeeOverview)/+page.gql | 0 .../(committeeOverview)/+page.svelte | 0 .../src}/routes/app/[conferenceId]/+layout.ts | 0 .../[committeeId]/(chairs)/+layout.gql | 0 .../[committeeId]/(chairs)/+layout.svelte | 0 .../[committeeId]/(chairs)/ChairNavbar.svelte | 0 .../(chairs)/StatusWidget.svelte | 0 .../(chairs)/committeeSubscription.ts | 0 .../(chairs)/presence/+page.svelte | 0 .../(chairs)/presence/PresenceActions.svelte | 0 .../(chairs)/presence/presenceMutations.ts | 0 .../[committeeId]/(chairs)/setup/+page.svelte | 0 .../setup/PresentationSettings.svelte | 0 .../(chairs)/speakers-list/+page.svelte | 0 .../(chairs)/voting/+page.svelte | 0 .../[committeeId]/(presentation)/+page.gql | 0 .../[committeeId]/(presentation)/+page.svelte | 0 .../(presentation)/RegionalGroups.svelte | 0 .../(presentation)/committeeSubscription.ts | 0 .../[conferenceId]/[committeeId]/+layout.ts | 0 .../[conferenceId]/mission-control/+page.gql | 0 .../mission-control/+page.svelte | 0 .../DownloadPresenceData.svelte | 0 .../missionControlSubscription.ts | 0 .../src}/routes/logout/+page.server.ts | 0 package-lock.json | 6641 ----------------- package.json | 159 +- project.inlang/.gitignore | 1 - project.inlang/project_id | 1 - project.inlang/settings.json | 15 +- schema.graphql | 480 -- src/app.css | 113 - src/app.d.ts | 7 +- src/app.html | 32 +- src/hooks.server.ts | 17 +- src/hooks.ts | 5 +- src/lib/assets/favicon.svg | 1 + src/lib/server/db/index.ts | 10 + src/lib/server/db/schema.ts | 6 + src/routes/+layout.svelte | 98 +- src/routes/+page.svelte | 2 + src/routes/demo/+page.svelte | 1 + src/routes/demo/paraglide/+page.svelte | 18 + static/robots.txt | 4 + svelte.config.js | 5 +- tsconfig.json | 8 +- vite.config.ts | 11 +- 257 files changed, 2116 insertions(+), 9973 deletions(-) rename .github/workflows/{build_run.yml => build_pr.yml} (64%) create mode 100644 .github/workflows/check_conventional_title_pr.yml rename .github/workflows/{lint.yml => lint_pr.yml} (89%) delete mode 100644 .graphqlrc.yaml delete mode 100644 .vscode/daisyui.md delete mode 100644 .vscode/extensions.json delete mode 100644 FRONTNED-CHECKLIST.md delete mode 100644 houdini.config.js delete mode 100644 lefthook-local.yml rename {.github => old/.github}/ISSUE_TEMPLATE/bug_report.md (100%) rename {.github => old/.github}/ISSUE_TEMPLATE/config.yml (100%) rename {.github => old/.github}/ISSUE_TEMPLATE/documentation.md (100%) rename {.github => old/.github}/ISSUE_TEMPLATE/enhancement.md (100%) rename {.github => old/.github}/ISSUE_TEMPLATE/feature.md (100%) rename {.github => old/.github}/PULL_REQUEST_TEMPLATE/bug_fix.md (100%) rename {.github => old/.github}/PULL_REQUEST_TEMPLATE/documentation.md (100%) rename {.github => old/.github}/PULL_REQUEST_TEMPLATE/empty.md (100%) rename {.github => old/.github}/PULL_REQUEST_TEMPLATE/enhancement.md (100%) rename {.github => old/.github}/PULL_REQUEST_TEMPLATE/feature.md (100%) rename {.github => old/.github}/release.yml (100%) rename {.github => old/.github}/workflows/build_image.yml (100%) rename {drizzle => old/drizzle}/0000_chemical_network.sql (100%) rename {drizzle => old/drizzle}/0001_romantic_shape.sql (100%) rename {drizzle => old/drizzle}/0002_panoramic_agent_brand.sql (100%) rename {drizzle => old/drizzle}/meta/0000_snapshot.json (100%) rename {drizzle => old/drizzle}/meta/0001_snapshot.json (100%) rename {drizzle => old/drizzle}/meta/0002_snapshot.json (100%) rename {drizzle => old/drizzle}/meta/_journal.json (100%) rename {src => old/src}/api/context.ts (100%) rename {src => old/src}/api/db/db.ts (100%) rename {src => old/src}/api/db/relations.ts (100%) rename {src => old/src}/api/db/reset.ts (100%) rename {src => old/src}/api/db/schema.ts (100%) rename {src => old/src}/api/db/seed-data/dev.yaml (100%) rename {src => old/src}/api/db/seed-data/schema.d.ts (100%) rename {src => old/src}/api/db/seed-data/schema.json (100%) rename {src => old/src}/api/db/seedConference.ts (100%) rename {src => old/src}/api/db/seedUtils.ts (100%) rename {src => old/src}/api/handlers/agendaItem.ts (100%) rename {src => old/src}/api/handlers/basics.ts (100%) rename {src => old/src}/api/handlers/committee.ts (100%) rename {src => old/src}/api/handlers/committeeMember.ts (100%) rename {src => old/src}/api/handlers/conference.ts (100%) rename {src => old/src}/api/handlers/conferenceMember.ts (100%) rename {src => old/src}/api/handlers/conferenceUser.ts (100%) rename {src => old/src}/api/handlers/import.ts (100%) rename {src => old/src}/api/handlers/presenceChangedTimestamp.ts (100%) rename {src => old/src}/api/handlers/register.ts (100%) rename {src => old/src}/api/handlers/representation.ts (100%) rename {src => old/src}/api/handlers/speakerOnList.ts (100%) rename {src => old/src}/api/handlers/speakersList.ts (100%) rename {src => old/src}/api/handlers/time.ts (100%) rename {src => old/src}/api/handlers/user.ts (100%) rename {src => old/src}/api/rumble.ts (100%) rename {src => old/src}/api/services/OIDC.ts (100%) rename {src => old/src}/api/services/isDMUNEmail.ts (100%) create mode 100644 old/src/app.css create mode 100644 old/src/app.d.ts create mode 100644 old/src/app.html rename {src => old/src}/assets/dmun-stock/bw1.jpg (100%) rename {src => old/src}/assets/dmun-stock/sh1.jpg (100%) rename {src => old/src}/assets/dmun-stock/sh2.jpg (100%) rename {src => old/src}/assets/dmunlogo/logo-weiss.png (100%) rename {src => old/src}/assets/dmunlogo/logo.png (100%) rename {src => old/src}/assets/logo/png/chase_logo_blue.png (100%) rename {src => old/src}/assets/logo/png/chase_logo_blue_text.png (100%) rename {src => old/src}/assets/logo/png/chase_logo_white.png (100%) rename {src => old/src}/assets/logo/png/chase_logo_white_text.png (100%) rename {src => old/src}/assets/logo/png/chase_logo_white_transparent.png (100%) rename {src => old/src}/assets/logo/svg/chase_logo_blue.svg (100%) rename {src => old/src}/assets/logo/svg/chase_logo_blue_text.svg (100%) rename {src => old/src}/assets/logo/svg/chase_logo_white.svg (100%) rename {src => old/src}/assets/logo/svg/chase_logo_white_text.svg (100%) rename {src => old/src}/assets/misc/blobs/blob_1.svg (100%) rename {src => old/src}/assets/misc/blobs/blob_2.svg (100%) rename {src => old/src}/assets/misc/blobs/blob_3.svg (100%) rename {src => old/src}/assets/misc/blobs/blob_4.svg (100%) rename {src => old/src}/assets/misc/blobs/blob_5.svg (100%) rename {src => old/src}/assets/undraw/404.svg (100%) rename {src => old/src}/assets/undraw/500.svg (100%) rename {src => old/src}/assets/undraw/access_denied.svg (100%) rename {src => old/src}/assets/undraw/around_the_world.svg (100%) rename {src => old/src}/assets/undraw/cancel.svg (100%) rename {src => old/src}/assets/undraw/candidate.svg (100%) rename {src => old/src}/assets/undraw/certificate.svg (100%) rename {src => old/src}/assets/undraw/delegation_payment.svg (100%) rename {src => old/src}/assets/undraw/educator.svg (100%) rename {src => old/src}/assets/undraw/empty_street.svg (100%) rename {src => old/src}/assets/undraw/feedback.svg (100%) rename {src => old/src}/assets/undraw/group_payment.svg (100%) rename {src => old/src}/assets/undraw/letter.svg (100%) rename {src => old/src}/assets/undraw/new.svg (100%) rename {src => old/src}/assets/undraw/newspaper.svg (100%) rename {src => old/src}/assets/undraw/order_confirmed.svg (100%) rename {src => old/src}/assets/undraw/progress.svg (100%) rename {src => old/src}/assets/undraw/question.svg (100%) rename {src => old/src}/assets/undraw/security_lockout.svg (100%) rename {src => old/src}/assets/undraw/single_payment.svg (100%) rename {src => old/src}/assets/undraw/sync_files.svg (100%) rename {src => old/src}/assets/undraw/team-up.svg (100%) rename {src => old/src}/assets/undraw/team.svg (100%) rename {src => old/src}/assets/undraw/team_collaboration.svg (100%) rename {src => old/src}/assets/undraw/the_world_is_mine.svg (100%) rename {src => old/src}/assets/undraw/verified.svg (100%) rename {src => old/src}/assets/undraw/voting.svg (100%) rename {src => old/src}/assets/undraw/warning.svg (100%) rename {src => old/src}/assets/undraw/world.svg (100%) rename {src => old/src}/client.ts (100%) create mode 100644 old/src/hooks.server.ts create mode 100644 old/src/hooks.ts rename {src => old/src}/lib/components/AbbreviationInfoBox.svelte (100%) rename {src => old/src}/lib/components/AdoptionConfetti.svelte (100%) rename {src => old/src}/lib/components/Alert/PromiseAlert.svelte (100%) rename {src => old/src}/lib/components/Alert/alert.ts (100%) rename {src => old/src}/lib/components/BasicCard.svelte (100%) rename {src => old/src}/lib/components/Combobox.svelte (100%) rename {src => old/src}/lib/components/CommitteeGrid.svelte (100%) rename {src => old/src}/lib/components/CurrentTime.svelte (100%) rename {src => old/src}/lib/components/DevPlaceholder.svelte (100%) rename {src => old/src}/lib/components/Flag.svelte (100%) rename {src => old/src}/lib/components/Footer.svelte (100%) rename {src => old/src}/lib/components/IconInfoBox.svelte (100%) rename {src => old/src}/lib/components/JoinedButtons.svelte (100%) rename {src => old/src}/lib/components/LanguageSwitcher.svelte (100%) rename {src => old/src}/lib/components/Majorities.svelte (100%) rename {src => old/src}/lib/components/Modal.svelte (100%) rename {src => old/src}/lib/components/NavbarBurgerMenu.svelte (100%) rename {src => old/src}/lib/components/Popover.svelte (100%) rename {src => old/src}/lib/components/Tabs.svelte (100%) rename {src => old/src}/lib/components/ThemeSwitcher.svelte (100%) rename {src => old/src}/lib/components/UndrawError.svelte (100%) rename {src => old/src}/lib/components/committee/AgendaItemChanger.svelte (100%) rename {src => old/src}/lib/components/committee/StateOfDebateChanger.svelte (100%) rename {src => old/src}/lib/components/committee/StateOfDebateChangerModal.svelte (100%) rename {src => old/src}/lib/components/committee/StatusChanger.svelte (100%) rename {src => old/src}/lib/components/committee/StatusChangerModal.svelte (100%) rename {src => old/src}/lib/components/rollCall/ChairRollCall.svelte (100%) rename {src => old/src}/lib/components/rollCall/PresentationRollCall.svelte (100%) rename {src => old/src}/lib/components/rollCall/ScrollingCountryList.svelte (100%) rename {src => old/src}/lib/components/speakersList/ChairSpeakersQueue.svelte (100%) rename {src => old/src}/lib/components/speakersList/CurrentSpeaker.svelte (100%) rename {src => old/src}/lib/components/speakersList/Hourglass.svelte (100%) rename {src => old/src}/lib/components/speakersList/PresentationSpeakersQueue.svelte (100%) rename {src => old/src}/lib/components/speakersList/StripesAlert.svelte (100%) rename {src => old/src}/lib/components/speakersList/Timer.svelte (100%) rename {src => old/src}/lib/components/speakersList/chairControls/AddSpeakers.svelte (100%) rename {src => old/src}/lib/components/speakersList/chairControls/ChairControls.svelte (100%) rename {src => old/src}/lib/components/speakersList/chairControls/MoreOptions.svelte (100%) rename {src => old/src}/lib/components/speakersList/chairControls/NextSpeech.svelte (100%) rename {src => old/src}/lib/components/speakersList/chairControls/SpeechControls.svelte (100%) rename {src => old/src}/lib/components/toast/BellIcon.svelte (100%) rename {src => old/src}/lib/components/voting/FlagRow.svelte (100%) rename {src => old/src}/lib/components/voting/ResultChart.svelte (100%) rename {src => old/src}/lib/components/voting/RollCallVotingChair.svelte (100%) rename {src => old/src}/lib/components/voting/RollCallVotingPresentation.svelte (100%) rename {src => old/src}/lib/components/voting/ShowOfHandsVotingChair.svelte (100%) rename {src => old/src}/lib/components/voting/ShowOfHandsVotingPresentation.svelte (100%) rename {src => old/src}/lib/components/voting/VoteClicker.svelte (100%) rename {src => old/src}/lib/components/voting/VotingSetup.svelte (100%) rename {src => old/src}/lib/components/whiteboard/UploadImage.svelte (100%) rename {src => old/src}/lib/components/whiteboard/WhiteboardBubbleMenu.svelte (100%) rename {src => old/src}/lib/components/whiteboard/WhiteboardEditor.svelte (100%) rename {src => old/src}/lib/components/whiteboard/WhiteboardEditorModal.svelte (100%) rename {src => old/src}/lib/components/whiteboard/WhiteboardStaticMenu.svelte (100%) rename {src => old/src}/lib/components/whiteboard/WhiteboardViewer.svelte (100%) rename {src => old/src}/lib/components/whiteboard/whiteboardEditorConfig.ts (100%) rename {src => old/src}/lib/config/getConfig.ts (100%) rename {src => old/src}/lib/config/private.ts (100%) rename {src => old/src}/lib/config/public.ts (100%) rename {src => old/src}/lib/data/presentationLayoutPresets.ts (100%) rename {src => old/src}/lib/data/stateOfDebateTemplates.ts (100%) rename {src => old/src}/lib/helpers/distinguishConferenceMembers.ts (100%) rename {src => old/src}/lib/helpers/lazy.ts (100%) rename {src => old/src}/lib/helpers/nanoid.ts (100%) rename {src => old/src}/lib/helpers/utilityTypes.ts (100%) rename {src => old/src}/lib/helpers/viewTransitionApi.svelte.ts (100%) create mode 100644 old/src/lib/index.ts rename {src => old/src}/lib/local-db/localDB.ts (100%) rename {src => old/src}/lib/state/serverTime.svelte.ts (100%) rename {src => old/src}/lib/utils/committeeStatus.ts (100%) rename {src => old/src}/lib/utils/import.ts (100%) rename {src => old/src}/lib/utils/media.svelte.ts (100%) rename {src => old/src}/lib/utils/nationTranslationHelper.svelte.ts (100%) rename {src => old/src}/lib/utils/theme.svelte.ts (100%) rename {src => old/src}/lib/utils/toast.ts (100%) rename {src => old/src}/routes/(pages)/+layout.svelte (100%) rename {src => old/src}/routes/(pages)/+page.svelte (100%) rename {src => old/src}/routes/(pages)/Card.svelte (100%) rename {src => old/src}/routes/(pages)/CardSection.svelte (100%) rename {src => old/src}/routes/(pages)/ComingSoonRibbon.svelte (100%) rename {src => old/src}/routes/(pages)/LandingHero.svelte (100%) rename {src => old/src}/routes/(pages)/Navbar.svelte (100%) rename {src => old/src}/routes/(pages)/TextSection.svelte (100%) create mode 100644 old/src/routes/+layout.svelte rename {src => old/src}/routes/api/graphql/+server.ts (100%) rename {src => old/src}/routes/api/schemas/import/+server.ts (100%) rename {src => old/src}/routes/app/(launcher)/+page.gql (100%) rename {src => old/src}/routes/app/(launcher)/+page.svelte (100%) rename {src => old/src}/routes/app/(launcher)/+page.ts (100%) rename {src => old/src}/routes/app/(launcher)/import/+page.svelte (100%) rename {src => old/src}/routes/app/+layout.server.ts (100%) rename {src => old/src}/routes/app/[conferenceId]/(committeeOverview)/+page.gql (100%) rename {src => old/src}/routes/app/[conferenceId]/(committeeOverview)/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/+layout.ts (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/+layout.gql (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/+layout.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/ChairNavbar.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/StatusWidget.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/committeeSubscription.ts (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/presence/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/presence/PresenceActions.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/presence/presenceMutations.ts (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/setup/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/setup/PresentationSettings.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/speakers-list/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(chairs)/voting/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(presentation)/+page.gql (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(presentation)/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(presentation)/RegionalGroups.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/(presentation)/committeeSubscription.ts (100%) rename {src => old/src}/routes/app/[conferenceId]/[committeeId]/+layout.ts (100%) rename {src => old/src}/routes/app/[conferenceId]/mission-control/+page.gql (100%) rename {src => old/src}/routes/app/[conferenceId]/mission-control/+page.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/mission-control/DownloadPresenceData.svelte (100%) rename {src => old/src}/routes/app/[conferenceId]/mission-control/missionControlSubscription.ts (100%) rename {src => old/src}/routes/logout/+page.server.ts (100%) delete mode 100644 package-lock.json delete mode 100644 project.inlang/.gitignore delete mode 100644 project.inlang/project_id delete mode 100644 schema.graphql create mode 100644 src/lib/assets/favicon.svg create mode 100644 src/lib/server/db/index.ts create mode 100644 src/lib/server/db/schema.ts create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/demo/+page.svelte create mode 100644 src/routes/demo/paraglide/+page.svelte create mode 100644 static/robots.txt diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index eb26da4b..9410195d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,5 @@ -Please go the the `Preview` tab and select the appropriate sub-template: +Please follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for your PR title, e.g.: -- [🐞 Bug Fix](?expand=1&labels=bug&title=🐞+fix%3a&template=empty.md) -- [🚀 Enhancement](?expand=1&labels=enhancement&title=🚀+enhancement%3a&template=empty.md) -- [✨ Feature](?expand=1&labels=feature&title=✨+feature%3a&template=empty.md) -- [📚 Documentation](?expand=1&labels=documentation&title=📚+documentation%3a&template=empty.md) +- `feat: add new authentication method` +- `fix: correct typo in documentation` +- `chore: update dependencies` diff --git a/.github/workflows/build_run.yml b/.github/workflows/build_pr.yml similarity index 64% rename from .github/workflows/build_run.yml rename to .github/workflows/build_pr.yml index b8db2ccb..4a4f3e49 100644 --- a/.github/workflows/build_run.yml +++ b/.github/workflows/build_pr.yml @@ -1,4 +1,4 @@ -name: Build and run +name: Check build and types on PR on: pull_request: @@ -13,8 +13,3 @@ jobs: - run: bun install --frozen-lockfile - run: bun run build - run: bun run check - # TODO - # - run: | - # bun run preview & - # sleep 10 - # curl -f http://localhost:4173 diff --git a/.github/workflows/check_conventional_title_pr.yml b/.github/workflows/check_conventional_title_pr.yml new file mode 100644 index 00000000..b5a39180 --- /dev/null +++ b/.github/workflows/check_conventional_title_pr.yml @@ -0,0 +1,25 @@ +name: Enforce Conventional Commits on PR Title +on: + pull_request: + types: [opened, edited, synchronize, reopened] + +jobs: + check-conventional-title: + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + with: + types: | + feat + fix + docs + style + refactor + perf + test + build + ci + chore + revert + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint_pr.yml similarity index 89% rename from .github/workflows/lint.yml rename to .github/workflows/lint_pr.yml index c3e1c180..01e63d64 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint_pr.yml @@ -1,4 +1,4 @@ -name: Lint +name: Lint PR source code on: pull_request: diff --git a/.gitignore b/.gitignore index 8bc46946..83eb0159 100644 --- a/.gitignore +++ b/.gitignore @@ -22,5 +22,5 @@ Thumbs.db vite.config.js.timestamp-* vite.config.ts.timestamp-* - -.houdini +# Paraglide +src/lib/paraglide diff --git a/.graphqlrc.yaml b/.graphqlrc.yaml deleted file mode 100644 index 5eb640e9..00000000 --- a/.graphqlrc.yaml +++ /dev/null @@ -1,9 +0,0 @@ -projects: - default: - schema: - - ./schema.graphql - - ./.houdini/graphql/schema.graphql - documents: - - '**/*.gql' - - '**/*.svelte' - - ./.houdini/graphql/documents.gql diff --git a/.prettierignore b/.prettierignore index 87cc69b5..02435764 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,4 +2,9 @@ package-lock.json pnpm-lock.yaml yarn.lock -schema.graphql \ No newline at end of file +bun.lock +bun.lockb + +# Miscellaneous +/static/ +/drizzle/ diff --git a/.prettierrc b/.prettierrc index 7ebb855b..8103a0b5 100644 --- a/.prettierrc +++ b/.prettierrc @@ -11,5 +11,6 @@ "parser": "svelte" } } - ] + ], + "tailwindStylesheet": "./src/app.css" } diff --git a/.vscode/daisyui.md b/.vscode/daisyui.md deleted file mode 100644 index e3219443..00000000 --- a/.vscode/daisyui.md +++ /dev/null @@ -1,1884 +0,0 @@ -# daisyUI 5 - -daisyUI 5 is a CSS library for Tailwind CSS 4 -daisyUI 5 provides class names for common UI components - -- [daisyUI 5 docs](http://daisyui.com) -- [Guide: How to use this file in LLMs and code editors](https://daisyui.com/docs/editor/) -- [daisyUI 5 release notes](https://daisyui.com/docs/v5/) -- [daisyUI 4 to 5 upgrade guide](https://daisyui.com/docs/upgrade/) - -## daisyUI 5 install notes - -[install guide](https://daisyui.com/docs/install/) - -1. daisyUI 5 requires Tailwind CSS 4 -2. `tailwind.config.js` file is deprecated in Tailwind CSS v4. do not use `tailwind.config.js`. Tailwind CSS v4 only needs `@import "tailwindcss";` in the CSS file if it's a node dependency. -3. daisyUI 5 can be installed using `npm i -D daisyui@latest` and then adding `@plugin "daisyui";` to the CSS file -4. daisyUI is suggested to be installed as a dependency but if you really want to use it from CDN, you can use Tailwind CSS and daisyUI CDN files: - -```html - - -``` - -5. A CSS file with Tailwind CSS and daisyUI looks like this (if it's a node dependency) - -```css -@import 'tailwindcss'; -@plugin "daisyui"; -``` - -## daisyUI 5 usage rules - -1. We can give styles to a HTML element by adding daisyUI class names to it. By adding a component class name, part class names (if there's any available for that component), and modifier class names (if there's any available for that component) -2. Components can be customized using Tailwind CSS utility classes if the customization is not possible using the existing daisyUI classes. For example `btn px-10` sets a custom horizontal padding to a `btn` -3. If customization of daisyUI styles using Tailwind CSS utility classes didn't work because of CSS specificity issues, you can use the `!` at the end of the Tailwind CSS utility class to override the existing styles. For example `btn bg-red-500!` sets a custom background color to a `btn` forcefully. This is a last resort solution and should be used sparingly -4. If a specific component or something similar to it doesn't exist in daisyUI, you can create your own component using Tailwind CSS utility -5. when using Tailwind CSS `flex` and `grid` for layout, it should be responsive using Tailwind CSS responsive utility prefixes. -6. Only allowed class names are existing daisyUI class names or Tailwind CSS utility classes. -7. Ideally, you won't need to write any custom CSS. Using daisyUI class names or Tailwind CSS utility classes is preferred. -8. suggested - if you need placeholder images, use https://picsum.photos/200/300 with the size you want -9. suggested - when designing , don't add a custom font unless it's necessary -10. don't add `bg-base-100 text-base-content` to body unless it's necessary -11. For design decisions, use Refactoring UI book best practices - -daisyUI 5 class names are one of the following categories. these type names are only for reference and are not used in the actual code - -- `component`: the required component class -- `part`: a child part of a component -- `style`: sets a specific style to component or part -- `behavior`: changes the behavior of component or part -- `color`: sets a specific color to component or part -- `size`: sets a specific size to component or part -- `placement`: sets a specific placement to component or part -- `direction`: sets a specific direction to component or part -- `modifier`: modifies the component or part in a specific way - -## Config - -daisyUI 5 config docs: https://daisyui.com/docs/config/ -daisyUI without config: - -```css -@plugin "daisyui"; -``` - -daisyUI config with `light` theme only: - -```css -@plugin "daisyui" { - themes: light --default; -} -``` - -daisyUI with all the default configs: - -```css -@plugin "daisyui" { - themes: - light --default, - dark --prefersdark; - root: ':root'; - include:; - exclude:; - prefix:; - logs: true; -} -``` - -An example config: -In below config, all the built-in themes are enabled while bumblebee is the default theme and synthwave is the prefersdark theme (default dark mode) -All the other themes are enabled and can be used by adding `data-theme="THEME_NAME"` to the `` element -root scrollbar gutter is excluded. `daisy-` prefix is used for all daisyUI classes and console.log is disabled - -```css -@plugin "daisyui" { - themes: - light, - dark, - cupcake, - bumblebee --default, - emerald, - corporate, - synthwave --prefersdark, - retro, - cyberpunk, - valentine, - halloween, - garden, - forest, - aqua, - lofi, - pastel, - fantasy, - wireframe, - black, - luxury, - dracula, - cmyk, - autumn, - business, - acid, - lemonade, - night, - coffee, - winter, - dim, - nord, - sunset, - caramellatte, - abyss, - silk; - root: ':root'; - include:; - exclude: rootscrollgutter, checkbox; - prefix: daisy-; - logs: false; -} -``` - -## daisyUI 5 colors - -### daisyUI color names - -- `primary`: Primary brand color, The main color of your brand -- `primary-content`: Foreground content color to use on primary color -- `secondary`: Secondary brand color, The optional, secondary color of your brand -- `secondary-content`: Foreground content color to use on secondary color -- `accent`: Accent brand color, The optional, accent color of your brand -- `accent-content`: Foreground content color to use on accent color -- `neutral`: Neutral dark color, For not-saturated parts of UI -- `neutral-content`: Foreground content color to use on neutral color -- `base-100`:-100 Base surface color of page, used for blank backgrounds -- `base-200`:-200 Base color, darker shade, to create elevations -- `base-300`:-300 Base color, even more darker shade, to create elevations -- `base-content`: Foreground content color to use on base color -- `info`: Info color, For informative/helpful messages -- `info-content`: Foreground content color to use on info color -- `success`: Success color, For success/safe messages -- `success-content`: Foreground content color to use on success color -- `warning`: Warning color, For warning/caution messages -- `warning-content`: Foreground content color to use on warning color -- `error`: Error color, For error/danger/destructive messages -- `error-content`: Foreground content color to use on error color - -### daisyUI color rules - -1. daisyUI adds semantic color names to Tailwind CSS colors -2. daisyUI color names can be used in utility classes, like other Tailwind CSS color names. for example, `bg-primary` will use the primary color for the background -3. daisyUI color names include variables as value so they can change based the theme -4. There's no need to use `dark:` for daisyUI color names -5. Ideally only daisyUI color names should be used for colors so the colors can change automatically based on the theme -6. If a Tailwind CSS color name (like `red-500`) is used, it will be same red color on all themes -7. If a daisyUI color name (like `primary`) is used, it will change color based on the theme -8. Using Tailwind CSS color names for text colors should be avoided because Tailwind CSS color `text-gray-800` on `bg-base-100` would be unreadable on a dark theme - because on dark theme, `bg-base-100` is a dark color -9. `*-content` colors should have a good contrast compared to their associated colors -10. suggestion - when designing a page use `base-*` colors for majority of the page. use `primary` color for important elements - -### daisyUI custom theme with custom colors - -A CSS file with Tailwind CSS, daisyUI and a custom daisyUI theme looks like this: - -```css -@import 'tailwindcss'; -@plugin "daisyui"; -@plugin "daisyui/theme" { - name: 'mytheme'; - default: true; /* set as default */ - prefersdark: false; /* set as default dark mode (prefers-color-scheme:dark) */ - color-scheme: light; /* color of browser-provided UI */ - - --color-base-100: oklch(98% 0.02 240); - --color-base-200: oklch(95% 0.03 240); - --color-base-300: oklch(92% 0.04 240); - --color-base-content: oklch(20% 0.05 240); - --color-primary: oklch(55% 0.3 240); - --color-primary-content: oklch(98% 0.01 240); - --color-secondary: oklch(70% 0.25 200); - --color-secondary-content: oklch(98% 0.01 200); - --color-accent: oklch(65% 0.25 160); - --color-accent-content: oklch(98% 0.01 160); - --color-neutral: oklch(50% 0.05 240); - --color-neutral-content: oklch(98% 0.01 240); - --color-info: oklch(70% 0.2 220); - --color-info-content: oklch(98% 0.01 220); - --color-success: oklch(65% 0.25 140); - --color-success-content: oklch(98% 0.01 140); - --color-warning: oklch(80% 0.25 80); - --color-warning-content: oklch(20% 0.05 80); - --color-error: oklch(65% 0.3 30); - --color-error-content: oklch(98% 0.01 30); - - --radius-selector: 1rem; /* border radius of selectors (checkbox, toggle, badge) */ - --radius-field: 0.25rem; /* border radius of fields (button, input, select, tab) */ - --radius-box: 0.5rem; /* border radius of boxes (card, modal, alert) */ - - --size-selector: 0.25rem; /* base size of selectors (checkbox, toggle, badge) */ - --size-field: 0.25rem; /* base size of fields (button, input, select, tab) */ - - --border: 1px; /* border size */ - - --depth: 1; /* only 0 or 1 – Adds a shadow and subtle 3D effect to components */ - --noise: 0; /* only 0 or 1 - Adds a subtle noise effect to components */ -} -``` - -#### Rules - -- All CSS variables above are required -- Colors can be OKLCH or hex or other formats - -You can use https://daisyui.com/theme-generator/ to create your own theme - -## daisyUI 5 components - -### accordion - -Accordion is used for showing and hiding content but only one item can stay open at a time - -[accordion docs](https://daisyui.com/components/accordion/) - -#### Class names - -- component: `collapse` -- part: `collapse-title`, `collapse-content` -- modifier: `collapse-arrow`, `collapse-plus`, `collapse-open`, `collapse-close` - -#### Syntax - -```html -