Commit graph

130 commits

Author SHA1 Message Date
André Jaenisch
4d81bd5e0d
chore: add funding section to README
In July 2024 the first batch of donations was wired for working on
Anvil. As a token of gratitude and for the sake of transparency, the
project README should shout out to NLnet.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-08-07 11:10:23 +02:00
André Jaenisch
55602e359a
feat: add new settings view for Keys
Currently the SSH and GPG keys are hardcoded. In a refactoring those
will be passed down as prop to the component. But I would need to query
Vervis to receive the real keys. Likewise I am not talking to Vervis
when updating (remove, add) a key.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-08-06 09:36:27 +02:00
André Jaenisch
03c8334338
feat: add Account Settings view
This is not interacting with Vervis at this point in time.
I clarified that changes should be persisted on moving away from a view.
I'm going to implement that once I have all views in place.

On top of that, persisting changes to Vervis requires me to study the
now documented Vervis API in more detail. I'm going to postpone this for
now but will revisit it in a few weeks.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-31 10:58:36 +02:00
André Jaenisch
be727a6d9c
chore: update dependencies
Turns out most Storybook Addons expect React and won't be installable in
a Svelte(Kit) project. But I could figure out how to use the play
functions. So I have an example for it.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-30 12:55:35 +02:00
André Jaenisch
018bf809fc
docs: add story for MainMenu
This allows for studying the MainMenu in isolation.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-28 12:15:12 +02:00
André Jaenisch
f20587cf1f
feat: bringing it all together
This is now showing the MainMenu on the profile page which in turn
pulls in the Settings modal.

I wasn't able to register the modal on Storybook yet, which means
that there won't be any on the Profile template or page story.

The implementation in Skeleton is causing some accessibility
warnings. However, since there next version is taking a radical
different approach I'm inclined to let it be for now. We should
document it somewhere, I guess.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-27 14:12:08 +02:00
André Jaenisch
581ab76ca7
feat: extract SettingsProfile into component
This is taking care of the view when the Settings is selected for a profile.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-26 16:40:27 +02:00
André Jaenisch
841ddd5a17
refactor: extract sidebar to component
I realised that I must not show the sidebar everywhere. So to not move
code around I extracted it into its own component. This one is not
matching the design (because of the links etc.) but is a step in the
direction.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-22 09:46:57 +02:00
André Jaenisch
ead9d281d0
feat: extract SettingsSidebar into component
This is in need of at least one refactoring. Skeleton is redesigning
the AppRail we are using here. The layout is hard to style.
This implementation interacts with a drawer, but it will likely be
dropped in the final version.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-22 09:34:27 +02:00
André Jaenisch
5d1bada084
refactor: extract MainMenuDetails into component
This way, MainMenu is only responsible for aggregating the UI.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-12 08:02:24 +02:00
André Jaenisch
26b3fc3ff0
feat: extract MainMenuActions into component
This represents the lower part of the main menu with actions I can have
on a project.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-10 12:15:47 +02:00
André Jaenisch
67d7a70ec9
chore: add floating-ui as dependency
This is a hard requirement for Popups I'm going to use to implment the
specified Overlays.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-10 12:15:40 +02:00
André Jaenisch
0ca5d963f3
feat: extract MainMenuSummary into component
This is the top part of the main menu which includes the Avatar overlay.
I'm not quite sure how to label each part.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-09 20:49:58 +02:00
André Jaenisch
179db76b5a
refactor: extract OverlayAvatar into component
I'm going to break up my MainMenu into smaller components, starting with
the OverlayAvatar. Testing it taught me how to handle stores in Vitest.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-08 20:34:06 +02:00
André Jaenisch
c779fad4b1
refactor: extract first page into a component
It is a component now which allows for inspection in Storybook.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-07 13:57:33 +02:00
André Jaenisch
99a8ebea95
fix: ensure screen is full size
I noticed that I do not cover the whole height.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-07 13:56:03 +02:00
André Jaenisch
7484bfeb1a
refactor: extract Welcome page into component
This allows for proper testing and documentation in Storybook.
I also moved the image into its own component. This required me to
adjust the vitest.config.ts slightly because it wasn't finding the image
during tests.

Since components are fully translatable, this means we have new keys
now.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 18:29:39 +02:00
André Jaenisch
a8097d3363
fix: don't break the layout
I was so focused on the welcome screen that I accidentally broke the
profile.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 17:26:26 +02:00
André Jaenisch
0d1b0454ef
refactor: extract first page into a component
It is a component now which allows for inspection in Storybook.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 17:25:21 +02:00
André Jaenisch
c89f9d6f1b
feat: replace skull with Anvil logo
When I refactor the homepage I can also get closer to the design
specification.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 17:22:59 +02:00
André Jaenisch
b95702ad7d
chore: remove dead code
This markup was commented. In case we ever need it, git will have it
stored in the repo history.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 17:17:46 +02:00
André Jaenisch
7b4703b044
fix: remove doubled entry
I'm also annoyed that we mix CommonJS with ESM here but one step at a
time.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 17:17:09 +02:00
André Jaenisch
fe39bab2f0
chore: update dependencies
Always a good idea to start with the latest versions.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-06 17:13:17 +02:00
André Jaenisch
a1f5b69704
chore: add new locales to Storybook
In order for others to inspect their translations I have added new
locales to Storybook.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
5297ea175f
docs: create stories for new components
I have added atoms, molecules and icons.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
019c6cf90e
docs: create stories for new components
I also introduce Person24 as fallback avatar and grant it a new icon in
Storybook as consequence.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
f807bf69b3
chore: update dependencies
I cannot upgrade ESLint to latest due to TypeScript parser dependency.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
91f6e24280
fix: add stories for Projects
I noticed that I missed stories for one or two projects in Storybook.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
769e3bcab3
feat: add new components to Storybook
I included stories for the new components introduced by the Projects
page.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
07007b0016
chore: add license banner to stories
I dropped the examples while at it.
Since Svelte-Octicons are used as-is I have to declare the license as
MIT.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
30edc92522
feat: link between stories
Right now this works with Template stories but not with Page stories to
collect feedback.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
87af757874
feat: load Inter as Webfont
I received confirmation that Inter is meant to be used for the whole
application. Therefore I'm loading it from a remote server.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
6e03027b4c
feat: apply locale and writing direction
FINALLY! I can look into translated UIs in Storybook with Svelte!

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
dc707869b4
docs: write Story for LoginForm
As it is visible here, part of the layout is deferred to the parent
component. See Login template.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
98f9f724ce
chore: update storybook dependencies
There is a v8 in the beta, so I update the dependencies to check whether
I need to adjust something.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
390c54a2bf
docs: create stories for Login page
This is the second form I have touched. Here, I even have a light
validation implemented on the server.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
b0366f26ed
feat: create stories for Profile
I also updated the icons to reflect all in use.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
21a7fc1b54
docs: create Stories for new pages and templates
I also extracted the Icons we use into a story and looked into how I
could potentially allow for changing the locale.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:35 +02:00
André Jaenisch
a5897dc63c
docs: document color palettes
Right now it is using the default Skeleton.dev palette.
I feel like we need to adjust it to our needs.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
49cbd6178e
fix: reenable scrolling
Otherwise information is lost.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
f5e64cdd7d
docs: add Typography
I had to work around Storybook here thanks to Tailwind.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
b4527b7fc0
docs: write stories for DisplayName
I'm curious whether the layout should be part of atoms…

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
18f7c0da76
docs: write story for BlockOrReport.svelte
This component does not take any arguments at the moment.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
10cab60d63
docs: create story for Created.svelte
This will need a refactor at some point by computing the formatted value
as reactive variable depending on the created_at and locale.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
41d82656b3
docs: add story for profile picture case
I also check for accessibility now.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
8ed9837fea
docs: write Storybook for Avatar
For some reason, the JSDoc annotation is not picked up yet. Need to
investigate more.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
a350e43362
chore: build storybook and deploy to Codeberg Page
We can now deploy Storybook to Codeberg Pages!

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
e248e0073d
chore: setup and configure default Storybook
I had to downgrade Vite because the Storybook builder does not support
v5 yet. Therefore this will be on a separate branch and updated as we
move along with the codebase.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-04 08:21:34 +02:00
André Jaenisch
be36d6af3b
fix: prevent dangling list item
By moving the fallback text into its own component I was able to move
the list element into the History molecule. Its API has changed
accordingly. I have written tests to prevent regressions.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-07-02 11:02:38 +02:00
Dirk
8ca9125fba
Translated using Weblate (German)
Currently translated at 100.0% (49 of 49 strings)

Translation: Anvil/Anvil
Translate-URL: https://translate.codeberg.org/projects/anvil/anvil/de/
2024-06-30 14:34:07 +02:00