diff --git a/CHANGES.md b/CHANGES.md index 24b5c9bf9f..33f66aafe8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -65,6 +65,8 @@ is a number of cores) ### :bug: Bugs fixed - Fix menu shadow color [Taiga #10102](https://tree.taiga.io/project/penpot/issue/10102) +- Fix icon visualization on select component [Taiga #8889](https://tree.taiga.io/project/penpot/issue/8889) +- Fix typo on integration tests docs [Taiga #10112](https://tree.taiga.io/project/penpot/issue/10112) - Fix problem with alt key measures being stuck [Taiga #9348](https://tree.taiga.io/project/penpot/issue/9348) - Fix error when reseting stroke cap - Fix problem with strokes not refreshing in Safari [Taiga #9040](https://tree.taiga.io/project/penpot/issue/9040) diff --git a/backend/resources/app/email/comment-mention/en.html b/backend/resources/app/email/comment-mention/en.html index fa45cab25e..d628c96998 100644 --- a/backend/resources/app/email/comment-mention/en.html +++ b/backend/resources/app/email/comment-mention/en.html @@ -203,7 +203,7 @@ - -
Accept invite + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> ACCEPT INVITE
diff --git a/backend/resources/app/email/join-team/en.html b/backend/resources/app/email/join-team/en.html index 1a59e70ce0..8f88a125b0 100644 --- a/backend/resources/app/email/join-team/en.html +++ b/backend/resources/app/email/join-team/en.html @@ -196,12 +196,12 @@ -
Go to the Team + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> GO TO THE TEAM
diff --git a/backend/resources/app/email/password-recovery/en.html b/backend/resources/app/email/password-recovery/en.html index 7770402b75..37693942d3 100644 --- a/backend/resources/app/email/password-recovery/en.html +++ b/backend/resources/app/email/password-recovery/en.html @@ -196,12 +196,12 @@ -
Reset password + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> RESET PASSWORD
diff --git a/backend/resources/app/email/register/en.html b/backend/resources/app/email/register/en.html index c5fb5bc3fb..8ee3b855a9 100644 --- a/backend/resources/app/email/register/en.html +++ b/backend/resources/app/email/register/en.html @@ -196,12 +196,12 @@ -
Verify email + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> VERIFY EMAIL
diff --git a/backend/resources/app/email/request-file-access-yourpenpot-view/en.html b/backend/resources/app/email/request-file-access-yourpenpot-view/en.html index 3146665f08..11f8b8dea1 100644 --- a/backend/resources/app/email/request-file-access-yourpenpot-view/en.html +++ b/backend/resources/app/email/request-file-access-yourpenpot-view/en.html @@ -204,12 +204,12 @@ -
Send a View-Only link + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> SEND A VIEW-ONLY LINK
diff --git a/backend/resources/app/email/request-file-access-yourpenpot/en.html b/backend/resources/app/email/request-file-access-yourpenpot/en.html index e32a1603fb..72d8e42821 100644 --- a/backend/resources/app/email/request-file-access-yourpenpot/en.html +++ b/backend/resources/app/email/request-file-access-yourpenpot/en.html @@ -227,12 +227,12 @@ -
Send a View-Only link + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> SEND A VIEW-ONLY LINK
diff --git a/backend/resources/app/email/request-file-access/en.html b/backend/resources/app/email/request-file-access/en.html index 370687e3f0..4ea4acfcc9 100644 --- a/backend/resources/app/email/request-file-access/en.html +++ b/backend/resources/app/email/request-file-access/en.html @@ -211,12 +211,12 @@ -
Give access to “{{team-name|abbreviate:25}}” Team + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> GIVE ACCESS TO “{{team-name|abbreviate:25}}” TEAM
@@ -244,12 +244,12 @@ -
Send a View-Only link + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> SEND A VIEW-ONLY LINK
diff --git a/backend/resources/app/email/request-team-access/en.html b/backend/resources/app/email/request-team-access/en.html index 54a7dcc2ab..2d9e266488 100644 --- a/backend/resources/app/email/request-team-access/en.html +++ b/backend/resources/app/email/request-team-access/en.html @@ -202,12 +202,12 @@ -
Give access to “{{team-name|abbreviate:25}}” + style="display:inline-block;background:#6911d4;color:#FFFFFF;font-family:Source Sans Pro, sans-serif;font-size:16px;font-weight:normal;line-height:120%;margin:0;text-decoration:none;text-transform:none;padding:10px 25px;mso-padding-alt:0px;border-radius:8px;" + target="_blank"> GIVE ACCESS TO “{{team-name|abbreviate:25}}” TEAM
diff --git a/docs/img/objects/board-fit.webp b/docs/img/objects/board-fit.webp new file mode 100644 index 0000000000..561b819a6a Binary files /dev/null and b/docs/img/objects/board-fit.webp differ diff --git a/docs/img/objects/board-rename.webm b/docs/img/objects/board-rename.webm new file mode 100644 index 0000000000..dfcd8a7476 Binary files /dev/null and b/docs/img/objects/board-rename.webm differ diff --git a/docs/img/objects/board-rename.webp b/docs/img/objects/board-rename.webp new file mode 100644 index 0000000000..2e4d4f863a Binary files /dev/null and b/docs/img/objects/board-rename.webp differ diff --git a/docs/plugins/faq.md b/docs/plugins/faq.md index 471818555c..d883b39d61 100644 --- a/docs/plugins/faq.md +++ b/docs/plugins/faq.md @@ -61,7 +61,7 @@ Take a look at the Penpot Library methods in the Penpot community. In the future, we plan to create a place where we will publish the plugins we know about, but this is still something we have to define. +Penpot Hub is where you can share plugins, templates and libraries all made possible through open-source collaboration. To add your plugin to our catalog, simply fill out this form with your plugin's details. ### My plugin works on my local machine, but I couldn’t install it on Penpot. What could be the problem? diff --git a/docs/technical-guide/developer/frontend.md b/docs/technical-guide/developer/frontend.md index 1291059765..cfd87ad79a 100644 --- a/docs/technical-guide/developer/frontend.md +++ b/docs/technical-guide/developer/frontend.md @@ -319,14 +319,14 @@ cd penpot/frontend 3. Run the tests with yarn: ```bash -yarn e2e:test +yarn test:e2e ``` > 💡 **TIP:** By default, the tests will _not_ run in parallel. You can set the amount of workers to run the tests with --workers. Note that, depending on your machine, this might make some tests flaky. ```bash # run in parallel with 4 workers -yarn e2e:test --workers 4 +yarn test:e2e --workers 4 ``` #### Running the tests in Chromium diff --git a/docs/user-guide/import-export/index.njk b/docs/user-guide/import-export/index.njk index 98d66b8f06..3d1dcdf02a 100644 --- a/docs/user-guide/import-export/index.njk +++ b/docs/user-guide/import-export/index.njk @@ -38,7 +38,7 @@ title: 14· Import/export files
Export penpot file

Import Penpot files

-

Importing files from other tools and services is among the main priorities of the Penpot team. Related features are coming soon.

+

The maximum file import size is currently limited to 1GB.

The import option is at the projects menu. Press “Import files” and then select one or more .penpot files to import. You can import a .zip file as well.

Import penpot file
@@ -50,7 +50,7 @@ title: 14· Import/export files

Unlike other design tools, Penpot's format is built on standard languages. The exported file is essentially a ZIP archive containing binary assets (such as bitmap and vector images) alongside a readable JSON structure. By avoiding proprietary formats, Penpot empowers users with autonomy from specific tools while enabling seamless third-party integrations.

Deprecated Penpot file formats

-

These formats can only be exported from version 2.3 or earlier versions, but can be imported to any Penpot version

+

These formats can only be exported from version 2.3 or earlier versions, but can be imported to any Penpot version.

There are two different deprecated Penpot file formats in which you can import/export Penpot files. A standard one and a binary one. You always have the chance to use both for any file.

[Deprecated] Penpot file (.penpot).

The fast one. Binary Penpot specific.

diff --git a/docs/user-guide/objects/index.njk b/docs/user-guide/objects/index.njk index b8392712f6..7946dd9f30 100644 --- a/docs/user-guide/objects/index.njk +++ b/docs/user-guide/objects/index.njk @@ -33,6 +33,20 @@ are shown by default at the View mode, actin +

Rename boards

+

There several ways to rename boards:

+ +
+ +
+

Set board as thumbnail

Select a specific board to be the file thumbnail that will be shown at the dashboard in the file card.

To set a custom thumbnail:

@@ -73,6 +87,12 @@ Penpot allows you to decide if the fill of an artboard will be shown in exports, show board fill in exports +

Resize board to fit to content

+

You can adjust the board size to fit its content by clicking the icon in the design sidebar.

+
+ Resize board to fit to content button +
+

Board guides

You can set guides on boards that will assist with aligning objects.

Read more about guides.

@@ -171,7 +191,6 @@ You can choose to edit individual nodes or create new ones. Press Esc -

Images

Insert images

There are several options for inserting an image into a Penpot file:

diff --git a/docs/user-guide/teams/index.njk b/docs/user-guide/teams/index.njk index 47920629d0..ce9cb1e789 100644 --- a/docs/user-guide/teams/index.njk +++ b/docs/user-guide/teams/index.njk @@ -41,8 +41,6 @@ member is allowed to do depends on their permissions.

  • Admin: Admins have the same permissions as editors, with the added ability to change every other member's role except owners. They can invite members and update team settings.
  • Owner: There's only one owner per team, the role is automatically assigned to the team creator. Owners have all the permissions of admins, with the additional ability to change any member's role, including transferring ownership. Owners can update team settings, invite members and delete teams.
  • -
    Team members
    -

    More team roles will be eventually available, as well as fine grained permissions management to control members access and actions.

    Transfer ownership

    An owner can transfer their ownership to another team member anytime and is requested to transfer it before leaving the team.

    diff --git a/frontend/src/app/main/data/comments.cljs b/frontend/src/app/main/data/comments.cljs index fd818b9a7c..14f973af55 100644 --- a/frontend/src/app/main/data/comments.cljs +++ b/frontend/src/app/main/data/comments.cljs @@ -404,6 +404,10 @@ (defn retrieve-comment-threads [file-id] (ptk/reify ::retrieve-comment-threads + ptk/UpdateEvent + (update [_ state] + (dissoc state :comment-threads)) + ptk/WatchEvent (watch [_ state _] (let [share-id (-> state :viewer-local :share-id)] diff --git a/frontend/src/app/main/ui/comments.cljs b/frontend/src/app/main/ui/comments.cljs index aa5e0045e7..ff93524e43 100644 --- a/frontend/src/app/main/ui/comments.cljs +++ b/frontend/src/app/main/ui/comments.cljs @@ -425,7 +425,9 @@ [] (let [mentions-s (mf/use-ctx mentions-context) profile (mf/deref refs/profile) - profiles (mf/deref refs/profiles) + + team (mf/deref refs/team) + members (:members team) state* (mf/use-state @@ -437,10 +439,8 @@ (deref state*) mentions-users - (mf/with-memo [mention-filter] - - - (->> (vals profiles) + (mf/with-memo [mention-filter members] + (->> members (filter (fn [{:keys [id fullname email]}] (and (not= id (:id profile)) @@ -461,9 +461,12 @@ (dom/stop-propagation event) (let [id (-> (dom/get-current-target event) (dom/get-data "user-id") - (uuid/uuid))] + (uuid/uuid)) + + user (d/seek #(= (:id %) id) members)] + (rx/push! mentions-s {:type :insert-mention - :data {:user (get profiles id)}}))))] + :data {:user user}}))))] (mf/with-effect [mentions-users selected] (let [sub diff --git a/frontend/src/app/main/ui/dashboard/placeholder.cljs b/frontend/src/app/main/ui/dashboard/placeholder.cljs index 8af3d723b8..042c0815a5 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.cljs +++ b/frontend/src/app/main/ui/dashboard/placeholder.cljs @@ -8,19 +8,27 @@ (:require-macros [app.main.style :as stl]) (:require [app.config :as cf] + [app.main.data.event :as ev] + [app.main.store :as st] [app.main.ui.dashboard.import :as udi] [app.main.ui.ds.product.empty-placeholder :refer [empty-placeholder*]] [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc empty-placeholder-projects* {::mf/wrap-props false} [{:keys [on-create on-finish-import project-id] :as props}] (let [file-input (mf/use-ref nil) - on-add-library (mf/use-fn #(dom/open-new-window "https://penpot.app/penpothub/libraries-templates")) + on-add-library (mf/use-fn + (fn [_] + (st/emit! (ptk/event ::ev/event {::ev/name "explore-libraries-click" + ::ev/origin "dashboard" + :section "empty-placeholder-projects"})) + (dom/open-new-window "https://penpot.app/penpothub/libraries-templates"))) on-import-files (mf/use-fn #(dom/click (mf/ref-val file-input)))] [:div {:class (stl/css :empty-project-container)} diff --git a/frontend/src/app/main/ui/ds/controls/select.cljs b/frontend/src/app/main/ui/ds/controls/select.cljs index 38222441c8..b74ac575d4 100644 --- a/frontend/src/app/main/ui/ds/controls/select.cljs +++ b/frontend/src/app/main/ui/ds/controls/select.cljs @@ -198,7 +198,7 @@ label]] [:> icon* {:icon-id i/arrow :class (stl/css :arrow) - :size "s" + :size "m" :aria-hidden true}]] (when open [:> options-dropdown* {:on-click on-option-click