Commit Graph

4308 Commits

Author SHA1 Message Date
ZiaCodes
2aa870d6ac
feat: Side quest Gif Magic completed (#7946)
![supermeme_14h47_52](https://github.com/user-attachments/assets/e7788a89-722c-4046-ae5d-c2a738daa433)
2024-10-22 14:23:52 +02:00
ZiaCodes
6e9774dac2
feat: Side quest meme magic completed (#7945)
![image](https://github.com/user-attachments/assets/615094b3-3d6b-40dc-a986-5e725201c47c)
2024-10-22 14:23:31 +02:00
ZiaCodes
006104c548
feat: Side quest Tweet compeleted (#7943)
![image](https://github.com/user-attachments/assets/9903f9b2-4a45-4a88-a50b-ca398aa556dd)

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
2024-10-22 14:22:06 +02:00
Ritansh Singh
07cdeeb595
Like & Re-Tweet oss.gg Launch Tweet #7947 (#7950)
Point: 50 Points
Task: Like & Re-Tweet oss.gg Launch Tweet
Attachement:
![retweet oss
gg](https://github.com/user-attachments/assets/6c7619be-707b-49ff-991d-15225e503b4b)

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2024-10-22 14:20:11 +02:00
Rajeev Dewangan
afb246558e
Update 2-write-blog-post-about-20.md (#7941)
Update oss-gg block post list for
https://github.com/twentyhq/twenty/pull/7938
2024-10-22 10:55:07 +02:00
gitstart-app[bot]
6133a72cf6
Migrate to twenty-ui utilities/screen-size (#7836)
This PR was created by [GitStart](https://gitstart.com/) to address the
requirements from this ticket:
[TWNTY-7540](https://clients.gitstart.com/twenty/5449/tickets/TWNTY-7540).

 --- 

### Description

Move `utilities/screen-size` to the `twenty-ui` package

### Demo

The `useScreenSize` was used to render the mobile nav for example on the
landing page.

It still renders properly


![](https://assets-service.gitstart.com/4814/018fa684-c192-455d-a38b-3b212fdb3c1a.png)

###### Fixes [#7540](https://github.com/twentyhq/twenty/issues/7540)

###### Dev QA

- [x] `utilities/screen-size` should be moved to the `twenty-ui` folder

- [x] The mobile nav should still show on the landing page

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-22 10:34:42 +02:00
gitstart-app[bot]
dfcf3ef879
Migrate to twenty-ui - layout/animated-placeholder (#7794)
This PR was created by [GitStart](https://gitstart.com/) to address the
requirements from this ticket:
[TWNTY-7531](https://clients.gitstart.com/twenty/5449/tickets/TWNTY-7531).

 --- 

### Description

- Migrate the `animated-placeholder` to `twenty-ui` and update all
imports.\
  \
  Fixes twentyhq/private-issues#87

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-22 10:28:09 +02:00
gitstart-app[bot]
bf0a059751
[Server Integration tests] Enrich integration GraphQL API tests #3 (#7931)
This PR was created by [GitStart](https://gitstart.com/) to address the
requirements from this ticket:
[TWNTY-7526](https://clients.gitstart.com/twenty/5449/tickets/TWNTY-7526).

 --- 

### Description

NoteTargets and MessageThreads are special cases because they do not
have a notable property that we could use in "update" the test cases,\
for NoteTargets we are using the personId, testing the relation, but for
MessageThreads we are using updatedAt. To test the relations for
MessageThreads\
we would need to update another object (Message) because the relation is
ONE_TO_MANY, updating another object in a test that would update the
current tested object sounds incorrect.\
In the NoteTargets, we can update the NoteTarget object because the
relation is MANY_TO_ONE\
for some tests we need an account ID, we are using Tim's account for all
the tests (the token in jest-integration.config.ts), so we are using a
constant to use the account ID

### Refs

#7526

### Demo


![](https://assets-service.gitstart.com/28455/7f1c520e-78e4-43c3-aa89-f6fc09e0a056.png)

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: gitstart-twenty <140154534+gitstart-twenty@users.noreply.github.com>
2024-10-22 10:17:10 +02:00
TheFaheem
c6bc09c5a2
[oss.gg]: hubspot to twenty contact data migration script (750 points) (migration-script) (#7937)
HubSpot to Twenty CRM Contact Migration Script

Script's github repo:
https://github.com/FaheemOnHub/twenty-crm-hubspot-script

This Node.js script facilitates migrating contacts from HubSpot CRM to
Twenty CRM. The user has the option to either check for duplicates in
the Twenty CRM before migrating or directly migrate all contacts without
checking.

Video Proof added in oss-gg's twenty-dev-challenges
2024-10-22 10:13:02 +02:00
gitstart-app[bot]
b45511c955
Migrate to twenty-ui - navigation/breadcrumb (#7793)
### Description

- Move breadcrumb components to `twenty-ui`    \
  \
  \
  Fixes  #7534

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 21:53:43 +02:00
Muhammad Abdullah
25010174f0
Adjust the line height and expand the maximum height of the plac… (#7764)
fixes: #7757

## What does this PR do?

We increased the line height from md to lg and the max height of the
placeholder subtitle text from 2.4 to 2.8 to ensure that letters are no
longer slightly cut off in the placeholder in Functions.



![twenty-placeholder-text](https://github.com/user-attachments/assets/1cfed3c4-6bae-4200-9516-4e1295da170a)

## How should this be tested?

  1. Log in
  2. Go to Settings
  3. Toggle "Advanced" settings
  4. Go to Functions

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 21:47:17 +02:00
Shyamsunder Tard
34ef2d3d6d
Left Padding removed in Settings Page Tabs (#7730)
Fix:  #7100 

The `TabList` component, located in
[Tablist](packages/twenty-front/src/modules/ui/layout/tab/components/TabList.tsx),
wraps the Tabs and defines the padding, and is used in multiple places.
The left padding for the Emails and Calendars sections of the Accounts
in Settings has been removed ( list appear when there are multiple
connected accounts ). However, the padding on the Record detail page
remains unchanged.

To address this, prop of css styles is added to `Tablist`, allowing for
the padding of the `TabList` component to be adjusted as required.

Additional styles can also be applied as per requirements individually
for Emails and Calendar section.


<img width="722" alt="Screenshot 2024-10-16 at 5 06 26 AM"
src="https://github.com/user-attachments/assets/3c7648ac-e2a6-4871-b58b-d25b008a06f0">
<img width="789" alt="Screenshot 2024-10-16 at 5 49 18 AM"
src="https://github.com/user-attachments/assets/a6e61b4d-0245-4744-ae87-86fe01a6bc43">
<img width="725" alt="Screenshot 2024-10-16 at 6 22 30 AM"
src="https://github.com/user-attachments/assets/e6a19095-3ee4-431f-ba19-1182552a5c8d">

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 21:42:37 +02:00
ZiaCodes
5e2df81211
fix: hidden settings menu affects settings layout (#7769)
This PR fixes #6746

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 21:28:01 +02:00
nitin
4407b1aaa2
Minor page header fix (#7927)
<img width="1420" alt="Screenshot 2024-10-22 at 00 03 03"
src="https://github.com/user-attachments/assets/c8841991-9c0a-41fd-8fc5-f789c4a94398">

<img width="1512" alt="Screenshot 2024-10-22 at 00 04 33"
src="https://github.com/user-attachments/assets/a9bbbad9-5cc3-4019-8928-d25d02d0bda9">
2024-10-21 20:48:12 +02:00
Antoine Moreaux
0f0a7966b1
feat(sso): allow to use OIDC and SAML (#7246)
## What it does
### Backend
- [x] Add a mutation to create OIDC and SAML configuration
- [x] Add a mutation to delete an SSO config
- [x] Add a feature flag to toggle SSO
- [x] Add a mutation to activate/deactivate an SSO config
- [x] Add a mutation to delete an SSO config
- [x] Add strategy to use OIDC or SAML
- [ ] Improve error management

### Frontend
- [x] Add section "security" in settings
- [x] Add page to list SSO configurations
- [x] Add page and forms to create OIDC or SAML configuration
- [x] Add field to "connect with SSO" in the signin/signup process
- [x] Trigger auth when a user switch to a workspace with SSO enable
- [x] Add an option on the security page to activate/deactivate the
global invitation link
- [ ] Add new Icons for SSO Identity Providers (okta, Auth0, Azure,
Microsoft)

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 20:07:08 +02:00
Harsh Singh
11c3f1c399
fix: width in PageHeader comp (#7866)
Fixes: #7864 


This fix prevents layout issues caused by invalid CSS and ensures that
the PageHeader component works correctly when no width prop is passed.

![Screenshot from 2024-10-20
00-03-39](https://github.com/user-attachments/assets/68340256-c756-4a56-9028-9aed32caf68e)

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 18:40:32 +02:00
uluckydev
5416773951
Fix Storybook Configuration for Windows Development Environment (#7904)
#### Description
This PR resolves issue #7903 regarding the Storybook configuration for
Windows development environments. Previously, the configuration script
generated forward slashes instead of backslashes, leading to errors when
running the command `npx nx run twenty-front:storybook:serve:dev
--configuration=modules` on Windows systems.

#### Changes Made
- Updated the Storybook configuration to ensure that backslashes are
used in file paths for Windows environments, preventing command
execution errors.

#### How to Test
1. **Run Storybook Command**:
   - On a Windows machine, execute the command:
     ```
     npx nx run twenty-front:storybook:serve:dev --configuration=modules
     ```
- Ensure that the command runs successfully without any path-related
errors.

2. **Verify Configuration**:
- Check the Storybook configuration files to confirm that paths are
using backslashes where applicable.
- Test the same command on non-Windows environments to verify that there
are no regressions.

#### Related Issue
- Fixes #7903
2024-10-21 18:28:31 +02:00
Nazar Poshtarenko
4578674e30
fix(website): enable // in token form URL input (#7923)
Fixes: #7861
2024-10-21 18:24:24 +02:00
Vardhaman Bhandari
1466d44b57
fix: Make the entire advanced mode toggle container clickable (#7761)
In this PR:

- Use a real `<input type="checkbox" />` element in the `<Toggle />`
component
- Create an `accessibility` module in the `twenty-ui` package
- Export the `VISIBILITY_HIDDEN` CSS object to hide visually any element
- Export a `<VisibilityHidden />` component from the `twenty-ui` package
to add visually hidden textual information easily
- Export a `<VisibilityHiddenInput />` component to create custom form
control components easily
- Use a `<label>` element for the "Advanced:" text; it will naturally
toggle the advanced settings

Fixes #7756

---------

Co-authored-by: Devessier <baptiste@devessier.fr>
2024-10-21 18:22:10 +02:00
DivyanshuLohani
1a0b387282
Add the role=button to search (#7594)
In this PR:

- Let the `<NavigationDrawerItem />` component render a `<button>` by
default instead of a `<div>`
- Replace `<div>` by `<span>` inside the `<NavigationDrawerItem />` as
`<button>` and `<a>` HTML elements only accept [_phrasing
content_](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content).
- Fix layout issue: the keyboard icon wasn't put on the right of the
button, I put it back

Fixes #7575

---------

Co-authored-by: Devessier <baptiste@devessier.fr>
2024-10-21 18:21:08 +02:00
gitstart-app[bot]
7b10bfa7d2
Add filter on array and jsonb field types (#7839)
This PR was created by [GitStart](https://gitstart.com/) to address the
requirements from this ticket:
[TWNTY-6784](https://clients.gitstart.com/twenty/5449/tickets/TWNTY-6784).
This ticket was imported from:
[TWNTY-6784](https://github.com/twentyhq/twenty/issues/6784)

 --- 

### Description

- Add filter on array and jsonb field types
- We did not implement the contains any filter for arrays on the
frontend because we would need to change the UI design since this should
be an array of values, and now we have only one input

### Demo


<https://www.loom.com/share/0facf752b63f4120b5d4ea4ee9772d35?sid=d7bde469-e6a9-4298-a637-d81d40695a86>

Fixes #6784

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: gitstart-twenty <140154534+gitstart-twenty@users.noreply.github.com>
Co-authored-by: Weiko <corentin@twenty.com>
2024-10-21 18:11:02 +02:00
sateshcharan
3f2751ef6c
[oss.gg] write-blog-post-about-20 (750 points) (#7922)
![image](https://github.com/user-attachments/assets/3de0b8a6-1c2e-40ae-a82b-ad6d2c21f84c)
2024-10-21 18:10:18 +02:00
sateshcharan
0e9d2708d4
[oss.gg] write-selfthost-guide-blog-post (750 points) (#7924)
![image](https://github.com/user-attachments/assets/c1817eb5-8ffa-466e-8385-1644decf48a0)
2024-10-21 18:08:36 +02:00
Ana Sofia Marin Alexandre
373926b895
Secure connexion between TinyBird and webhookResponseGraph (#7913)
TLDR:
Secure connexion between tinybird and twenty using jwt when accessing
datasource from tinybird.

Solves:
https://github.com/twentyhq/private-issues/issues/73


In order to test:

1. Set ANALYTICS_ENABLED to true
2. Set TINYBIRD_JWT_TOKEN to the ADMIN token from the workspace
twenty_analytics_playground
3. Set TINYBIRD_JWT_TOKEN to the datasource or your admin token from the
workspace twenty_analytics_playground
4. Create a Webhook in twenty and set wich events it needs to track
5. Run twenty-worker in order to make the webhooks work.
6. Do your tasks in order to populate the data
7. Enter to settings> webhook>your webhook and the statistics section
should be displayed.

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 17:42:52 +02:00
Weiko
edf4ae084b
Add simplify-search-vector-expression to upgrade 0-32 command (#7925)
## Context
Moving this command to the global command runner for 0.32 upgrade. This
should fix searchVector expression introduced in 0.31 to later handle
soft-deleted + search filter properly.

## Test
```
git co v0.31.0
-- reset DB
git co c--add-simplify-search-vector-expression-to-upgrade-0-32
-- migrate typeorm
-- upgrade 0.32 command
```

search is working and expression is correctly set. Soft deleted records
are not shown as before but it's now possible to override that behavior
via filters.

cc @ijreilly
2024-10-21 17:23:50 +02:00
sateshcharan
4bd8945519
[oss.gg] design-new-logo-twenty (#7917)
![image](https://github.com/user-attachments/assets/9b1fd757-1fd5-402d-ab6d-9389d738d97f)
2024-10-21 16:23:30 +02:00
sateshcharan
9aed944da9
[oss.gg] design-promotional-poster (300 points) (#7919)
![image](https://github.com/user-attachments/assets/763c57a3-4dd1-4882-a989-d6df3f00269f)
2024-10-21 16:18:12 +02:00
sateshcharan
1f5d9bd69e
[🕹️] quest-wizard (300 points) (#7921)
![image](https://github.com/user-attachments/assets/56fa4f09-fa11-41ae-9198-dbd92c0596fd)

![image](https://github.com/user-attachments/assets/543a1f8f-b196-4b3b-be2d-7ced9dd9e0e0)

![image](https://github.com/user-attachments/assets/5d13b4a3-1f40-4e1b-a368-fe95c49cbb2c)

![image](https://github.com/user-attachments/assets/936457e6-d18c-444f-a853-162b75b9b807)

![image](https://github.com/user-attachments/assets/c48e4b5e-30a6-404b-bea3-7633a499c69b)
2024-10-21 16:08:26 +02:00
Hitarth Sheth
b87c7d4a0c
[FIX] install node version before corepack enable (#7809)
FIX #7696

This correctly installs the recommended node version before enabling
corepack.

![Screenshot 2024-10-14
142628](https://github.com/user-attachments/assets/674f28d5-8d1b-40fc-aaae-4195c14ea350)

Thanks!
2024-10-21 16:07:14 +02:00
Prashant Kumar
28c99cbc64
fix: use <button> tag for buttons (#7797)
## What does this PR do?
This PR updates div with button tag for buttons

Fixes #7577 

![Screenshot 2024-10-17
210955](https://github.com/user-attachments/assets/54a0c0e9-93ed-4730-a738-bf486f1f58c8)
2024-10-21 12:32:19 +00:00
Charles Bochet
784770dfe8 Disable Github runners front CIs 2024-10-21 14:23:57 +02:00
Raphaël Bosi
40152d3b92
7665 handle the select all case inside the action menu (#7742)
Closes #7665 
- Handle select all
- Handle Filters

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-10-21 14:22:03 +02:00
Charles Bochet
eaab2d0dd2 Fix CI not running on main 2024-10-21 13:32:54 +02:00
Charles Bochet
2f72e22ff9 Fix CI not running on main 2024-10-21 13:19:35 +02:00
Thomas des Francs
a5b2b3522f
Updated image to correct typo (#7907)
Fixes https://github.com/twentyhq/twenty/issues/7899
2024-10-21 12:25:25 +02:00
Baptiste Devessier
e7eeb3b820
Add Workflow Run show page (#7719)
In this PR:

- Display a workflow version visualizer for the version of the workflow
the run was executed on.
- Display the output of the run as code.


https://github.com/user-attachments/assets/d617300a-bff4-4328-a35c-291dc86d81cf
2024-10-21 12:04:44 +02:00
shubham yadav
b914182b78
Update workflows to optimize CI processes (#7828)
This Pull Request addresses the need to optimize our Continuous
Integration (CI) workflows for Playwright tests and release processes.
The changes implemented aim to reduce unnecessary resource usage by
conditionally executing jobs based on relevant file changes and
Implement https://github.com/tj-actions/changed-files step

## Changes logs
- Updated `ci-test-docker-compose.yaml , ci-chrome-extension.yaml ` to
check for changed files before running tests.
- Updated `ci-front.yaml , ci-utils.yaml , ci-website.yaml ,
ci-server.yaml` to check for changed files before running tests.
- Enhanced `playwright.yml` to skip unnecessary tests based on file
changes.
2024-10-21 12:02:14 +02:00
Baptiste Devessier
fc6748de0a
Add modal to confirm workflow draft version overriding (#7758)
In this PR:

- Allow the `<ConfirmationModal />` to take additional buttons to
display between the cancel and the confirm buttons.
- Create a modal that's displayed when the user tries wants to use a
workflow version as draft while a draft version already exists. The
displayed modal contains a link to the current draft version and a
button to confirm the overriding of the current draft version.

A demo:


https://github.com/user-attachments/assets/6349f418-1b11-45b3-9f5e-061ca74c2966

Closes twentyhq/private-issues#114
2024-10-21 11:51:54 +02:00
Bhavesh Mishra
f3ec6a759f
OSS.GG Content creation challenge (#7859)
I have the content creation challenge of twenty I have published a
detailed Youtube walkthrough to Twenty Dashboard and Created a Blog on
Hashnode about Twenty Crm with step by step guide to use Twenty.

Below are the task links
1. Create a YouTube Video about Twenty showcasing a specific way to use
Twenty effectively. Points: 750
[Watch here](https://youtu.be/KuAycGuW698?si=TyKGVyrydLzof2RI)

2. Write a blog post about sharing your experience using Twenty in a
detailed format on any platform. Points: 750
[Click
here](https://k5lo7h.hashnode.dev/twenty-crm-a-fresh-start-for-modern-businesses)

Total Points - 1500
2024-10-21 08:41:19 +02:00
Rajeev Dewangan
ae1d53aa29
Write-a-blog-post-about-Twenty (#7902)
What side quest are you solving: Write a blog post about Twenty

Description: Shared my experience using Twenty in a detailed blog post

Points: 750

Proof: 

link :
https://open.substack.com/pub/rajeevdewangan/p/our-experience-using-twenty-an-open?r=4lly3x&utm_campaign=post&utm_medium=web&showWelcomeOnShare=true
![Screenshot 2024-10-21
103524](https://github.com/user-attachments/assets/9475c262-8c5e-4a74-b2c7-e690e72daba4)
2024-10-21 08:37:00 +02:00
Ngan Phan
d6810c3b42
fix: Custom fields lacks empty tag (#7777)
This PR fixes this issue #7250

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-10-21 08:33:59 +02:00
BOHEUS
cc4b060932
Typos in docs (#7898) 2024-10-20 23:09:28 +02:00
Manish Kr Prasad
35bb1a82ba
side quest: Like & Re-Tweet oss.gg Launch Tweet (#7877)
Description:
Liked & Tweeted @twentycrm on X

Points:
50

Proof:
Link: https://x.com/mkprasad_821/status/1847886807314120762

<img width="1369" alt="Screenshot 2024-10-20 at 11 56 54 AM"
src="https://github.com/user-attachments/assets/e17daa69-6920-4641-8282-4aa98f48762a">

---------

Co-authored-by: Apple <apple@Apples-MacBook-Pro.local>
2024-10-20 20:28:06 +02:00
Poorvi Bajpai
f27b1169a1
meme-magic #7875 created (#7878)
Completed the sidequest of meme magic

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
2024-10-20 20:27:53 +02:00
sateshcharan
a09c5280ee
oss.gg - Side quest meme magic completed (#7879)
![image](https://github.com/user-attachments/assets/c2d52346-4fdb-49de-8b70-e3a1da3a7521)

---------

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
2024-10-20 20:26:17 +02:00
Manish Kr Prasad
b134f62da7
oss.gg: Created a gif about twenty and uploaded to Giphy (#7884)
### Points
150

### Proof

Link to tweet: https://x.com/mkprasad_821/status/1847917157956419690
Link to giphy: https://giphy.com/gifs/uiTAwFJ0BWQsQb7jbM
<img width="1144" alt="Screenshot 2024-10-20 at 1 49 43 PM"
src="https://github.com/user-attachments/assets/cf1ccdbc-1dc0-461c-80b7-d49a59926e73">

Co-authored-by: Apple <apple@Apples-MacBook-Pro.local>
2024-10-20 20:25:24 +02:00
Manish Kr Prasad
8b5b0da77f
Design/Create new Twenty logo, tweet your design. (#7892)
### Points:
300

### Proof:
<img width="1144" alt="Screenshot 2024-10-20 at 6 13 00 PM"
src="https://github.com/user-attachments/assets/b116e978-c216-443b-a12d-7d340e1e3d09">

Co-authored-by: Apple <apple@Apples-MacBook-Pro.local>
2024-10-20 20:23:24 +02:00
Manish Kr Prasad
44a843542c
Design a promotional poster for twenty. (#7896)
### Points:
300

### Proof:

<img width="1227" alt="Screenshot 2024-10-20 at 10 00 57 PM"
src="https://github.com/user-attachments/assets/b2dfaefb-b73c-4a22-a4f0-8721150af52d">

Co-authored-by: Apple <apple@Apples-MacBook-Pro.local>
2024-10-20 20:21:23 +02:00
Charles Bochet
eccf0bf8ba
Enforce front project structure through ESLINT (#7863)
Fixes: https://github.com/twentyhq/twenty/issues/7329
2024-10-20 20:20:19 +02:00
Manish Kr Prasad
f801f3aa9f
oss.gg Tweet about your favourite feature in Twenty (#7880)
Point: 50

Proof:
Link: https://x.com/mkprasad_821/status/1847895747707953205

<img width="1369" alt="Screenshot 2024-10-20 at 12 31 07 PM"
src="https://github.com/user-attachments/assets/c9db7eb1-e854-4cb6-8120-5a14d27ccadd">

Co-authored-by: Apple <apple@Apples-MacBook-Pro.local>
2024-10-20 10:20:39 +02:00