From 5628efdfadd2371fbfa7b60e21531c40b954bf46 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 17 Jun 2026 05:58:59 +0000 Subject: [PATCH] :bug: Fix auto-link libraries: permission check, default selection, and tests Backend: - Add edit-permission check in auto-link-libraries before creating file_library_rel rows, matching the manual link RPC behavior - Fix 3 broken tests by removing source library before import to simulate cross-environment scenario - Add test for permission check (viewer vs owner auto-link) - Add test for used-by filtering (only linked files get rels) Frontend: - Fix library resolution default selection: pre-select first candidate so confirming without interaction actually links libraries - Remove unused file-ids prop from library-resolution* component - Remove unused translation keys (library-link-error, library-placeholder) --- backend/src/app/binfile/v3.clj | 31 +- backend/test/backend_tests/binfile_test.clj | 147 +++ .../src/app/main/ui/dashboard/import.cljs | 59 +- frontend/translations/en.po | 973 +++++++++--------- frontend/translations/es.po | 6 - 5 files changed, 691 insertions(+), 525 deletions(-) diff --git a/backend/src/app/binfile/v3.clj b/backend/src/app/binfile/v3.clj index dd39a3635c..c36ed30263 100644 --- a/backend/src/app/binfile/v3.clj +++ b/backend/src/app/binfile/v3.clj @@ -931,24 +931,29 @@ "Auto-link imported files to libraries that have exactly one candidate match. Returns a vector of {:id old-lib-id :name string :new-id uuid} for each auto-linked library." - [{:keys [::db/conn ::manifest ::bfc/timestamp] :as cfg} resolution file-ids] + [{:keys [::db/conn ::manifest ::bfc/timestamp ::bfc/profile-id] :as cfg} resolution file-ids] (let [external-libs (:external-libraries manifest)] (reduce (fn [linked {:keys [id name used-by] :as ext-lib}] (let [candidates (get resolution id)] (if (= 1 (count candidates)) (let [new-lib-id (:id (first candidates)) - ;; Link only files that actually used this library - relevant-file-ids (if (seq used-by) - (let [used-set (set (map bfc/lookup-index used-by))] - (filterv used-set file-ids)) - file-ids)] - (doseq [fid relevant-file-ids] - (let [rel-params {:file-id fid - :library-file-id new-lib-id}] - (db/insert! conn :file-library-rel rel-params - ::db/on-conflict-do-nothing? true) - (bfc/upsert-file-library-sync! conn (assoc rel-params :synced-at timestamp)))) - (conj linked {:id id :name name :new-id new-lib-id})) + perms (bfc/get-file-permissions conn profile-id new-lib-id)] + ;; Only auto-link when the importer has edit permission + ;; on the matched library, matching the manual link RPC. + (if (:can-edit perms) + (let [;; Link only files that actually used this library + relevant-file-ids (if (seq used-by) + (let [used-set (set (map bfc/lookup-index used-by))] + (filterv used-set file-ids)) + file-ids)] + (doseq [fid relevant-file-ids] + (let [rel-params {:file-id fid + :library-file-id new-lib-id}] + (db/insert! conn :file-library-rel rel-params + ::db/on-conflict-do-nothing? true) + (bfc/upsert-file-library-sync! conn (assoc rel-params :synced-at timestamp)))) + (conj linked {:id id :name name :new-id new-lib-id})) + linked)) linked))) [] external-libs))) diff --git a/backend/test/backend_tests/binfile_test.clj b/backend/test/backend_tests/binfile_test.clj index d1b12df41d..2345504930 100644 --- a/backend/test/backend_tests/binfile_test.clj +++ b/backend/test/backend_tests/binfile_test.clj @@ -12,6 +12,7 @@ [app.common.features :as cfeat] [app.common.pprint :as pp] [app.common.thumbnails :as thc] + [app.common.time :as ct] [app.common.types.shape :as cts] [app.common.uuid :as uuid] [app.db :as db] @@ -178,6 +179,12 @@ (assoc ::bfc/include-libraries false)) (io/output-stream output)) + ;; Remove the source library to simulate a cross-environment import + ;; where the original library does not exist in the target team. + (db/update! th/*system* :file + {:deleted-at (ct/now)} + {:id (:id library)}) + ;; Now create a new shared library with the same name in the same team ;; (simulating the library existing in the target environment) (let [library2 (th/create-file* 3 {:profile-id (:id profile) @@ -229,6 +236,12 @@ (assoc ::bfc/include-libraries false)) (io/output-stream output)) + ;; Remove the source library to simulate a cross-environment import + ;; where no matching library exists in the target team. + (db/update! th/*system* :file + {:deleted-at (ct/now)} + {:id (:id library)}) + ;; Import without any matching library in the team (let [result (-> th/*system* (assoc ::bfc/project-id (:default-project-id profile)) @@ -267,6 +280,12 @@ (assoc ::bfc/include-libraries false)) (io/output-stream output)) + ;; Remove the source library to simulate a cross-environment import + ;; where the original library does not exist in the target team. + (db/update! th/*system* :file + {:deleted-at (ct/now)} + {:id (:id library)}) + ;; Create TWO shared libraries with the same name (let [library2 (th/create-file* 3 {:profile-id (:id profile) :project-id (:default-project-id profile) @@ -299,3 +318,131 @@ (let [rels (db/query th/*system* :file-library-rel {:library-file-id (:id library3)})] (t/is (= 0 (count rels)))))))) + +(t/deftest import-auto-link-respects-library-permissions + (let [owner (th/create-profile* 1) + team (th/create-team* 1 {:profile-id (:id owner)}) + viewer (th/create-profile* 2) + _ (th/create-team-role* {:team-id (:id team) + :profile-id (:id viewer) + :role :viewer}) + + library (th/create-file* 1 {:profile-id (:id owner) + :project-id (:default-project-id owner) + :is-shared true + :name "Icons Library"}) + file (th/create-file* 2 {:profile-id (:id owner) + :project-id (:default-project-id owner) + :is-shared false})] + + ;; Link file to library + (db/insert! th/*system* :file-library-rel + {:file-id (:id file) + :library-file-id (:id library)}) + + ;; Export without including libraries + (let [output (tmp/tempfile :suffix ".zip")] + (v3/export-files! + (-> th/*system* + (assoc ::bfc/ids #{(:id file)}) + (assoc ::bfc/embed-assets false) + (assoc ::bfc/include-libraries false)) + (io/output-stream output)) + + ;; Remove the source library and recreate a matching one owned by owner + (db/update! th/*system* :file + {:deleted-at (ct/now)} + {:id (:id library)}) + + ;; Create a project in the team for the matched library and import. + (let [project (th/create-project* 1 {:profile-id (:id owner) + :team-id (:id team)}) + + library2 (th/create-file* 3 {:profile-id (:id owner) + :project-id (:id project) + :is-shared true + :name "Icons Library"}) + + result (-> th/*system* + (assoc ::bfc/project-id (:id project)) + (assoc ::bfc/profile-id (:id viewer)) + (assoc ::bfc/team-id (:id team)) + (assoc ::bfc/input output) + (v3/import-files!))] + + ;; Auto-link must be skipped because viewer cannot edit the library + (t/is (= [] (:auto-linked result))) + + ;; No file-library-rel should have been created + (let [rels (db/query th/*system* :file-library-rel + {:library-file-id (:id library2)})] + (t/is (= 0 (count rels)))) + + ;; Control: the same import performed by the owner (who has edit + ;; permission on the library) should auto-link. + (let [result (-> th/*system* + (assoc ::bfc/project-id (:id project)) + (assoc ::bfc/profile-id (:id owner)) + (assoc ::bfc/team-id (:id team)) + (assoc ::bfc/input output) + (v3/import-files!))] + + (t/is (= 1 (count (:auto-linked result)))) + (t/is (= (:id library2) (:new-id (first (:auto-linked result))))) + (let [rels (db/query th/*system* :file-library-rel + {:library-file-id (:id library2)})] + (t/is (= 1 (count rels))))))))) + +(t/deftest import-auto-link-only-files-that-used-library + (let [profile (th/create-profile* 1) + library (th/create-file* 1 {:profile-id (:id profile) + :project-id (:default-project-id profile) + :is-shared true + :name "Icons Library"}) + file1 (th/create-file* 2 {:profile-id (:id profile) + :project-id (:default-project-id profile) + :is-shared false}) + file2 (th/create-file* 3 {:profile-id (:id profile) + :project-id (:default-project-id profile) + :is-shared false})] + + ;; Only file1 uses the library + (db/insert! th/*system* :file-library-rel + {:file-id (:id file1) + :library-file-id (:id library)}) + + ;; Export both files without including libraries + (let [output (tmp/tempfile :suffix ".zip")] + (v3/export-files! + (-> th/*system* + (assoc ::bfc/ids #{(:id file1) (:id file2)}) + (assoc ::bfc/embed-assets false) + (assoc ::bfc/include-libraries false)) + (io/output-stream output)) + + ;; Remove the source library and recreate a matching one + (db/update! th/*system* :file + {:deleted-at (ct/now)} + {:id (:id library)}) + + (let [library2 (th/create-file* 4 {:profile-id (:id profile) + :project-id (:default-project-id profile) + :is-shared true + :name "Icons Library"}) + + result (-> th/*system* + (assoc ::bfc/project-id (:default-project-id profile)) + (assoc ::bfc/profile-id (:id profile)) + (assoc ::bfc/team-id (:default-team-id profile)) + (assoc ::bfc/input output) + (v3/import-files!))] + + ;; The library should be auto-linked + (t/is (= 1 (count (:auto-linked result)))) + (t/is (= (:id library2) (:new-id (first (:auto-linked result))))) + (t/is (= {} (:library-candidates result))) + + ;; But only one file-library-rel should exist (for file1) + (let [rels (db/query th/*system* :file-library-rel + {:library-file-id (:id library2)})] + (t/is (= 1 (count rels)))))))) diff --git a/frontend/src/app/main/ui/dashboard/import.cljs b/frontend/src/app/main/ui/dashboard/import.cljs index f2c882d601..a079a8a2b9 100644 --- a/frontend/src/app/main/ui/dashboard/import.cljs +++ b/frontend/src/app/main/ui/dashboard/import.cljs @@ -346,33 +346,41 @@ [{:keys [resolution selections*]}] (let [external-libs (:external-libs resolution) library-candidates (:library-candidates resolution) - selections (deref selections*) + selections (deref selections*)] - on-select - (mf/use-fn - (mf/deps selections*) - (fn [old-lib-id candidate-id] - (swap! selections* assoc old-lib-id candidate-id)))] + ;; Pre-select the first candidate for each unresolved library so that + ;; confirming without interaction still links the default choice. + (mf/with-effect [] + (doseq [[old-lib-id candidates] library-candidates] + (when-not (contains? @selections* old-lib-id) + (when-let [first-candidate (first candidates)] + (swap! selections* assoc old-lib-id (:id first-candidate)))))) - (when (seq library-candidates) - [:div {:class (stl/css :library-resolution)} - [:p {:class (stl/css :library-resolution-message)} - (tr "dashboard.import.resolve-libraries")] + (let [on-select + (mf/use-fn + (mf/deps selections*) + (fn [old-lib-id candidate-id] + (swap! selections* assoc old-lib-id candidate-id)))] - (for [{:keys [id name]} external-libs] - (let [candidates (get library-candidates id) - options (mapv (fn [c] - {:id (str (:id c)) - :label (:name c)}) - candidates) - selected (get selections id)] - [:div {:class (stl/css :library-resolution-item) - :key (dm/str id)} - [:div {:class (stl/css :library-resolution-item-name)} - name] - [:> select* {:options options - :default-selected (or (some-> selected str) "") - :on-change (partial on-select id)}]]))]))) + (when (seq library-candidates) + [:div {:class (stl/css :library-resolution)} + [:p {:class (stl/css :library-resolution-message)} + (tr "dashboard.import.resolve-libraries")] + + (for [{:keys [id name]} external-libs] + (let [candidates (get library-candidates id) + options (mapv (fn [c] + {:id (str (:id c)) + :label (:name c)}) + candidates) + selected (get selections id)] + [:div {:class (stl/css :library-resolution-item) + :key (dm/str id)} + [:div {:class (stl/css :library-resolution-item-name)} + name] + [:> select* {:options options + :default-selected (or (some-> selected str) "") + :on-change (partial on-select id)}]]))])))) (mf/defc import-dialog {::mf/register modal/components @@ -586,8 +594,7 @@ {:level :success :content (tr "dashboard.import.auto-linked-libraries" (i18n/c auto-linked-count))}]) [:> library-resolution* {:resolution library-resolution - :selections* library-selections* - :file-ids (:file-ids library-resolution)}]]) + :selections* library-selections*}]]) (if (or (= :import-error status) (and (= :analyze status) errors?)) [:div {:class (stl/css :import-error-disclaimer)} diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 8716985583..731e3c8fd1 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -286,7 +286,7 @@ msgstr "Select All" msgid "common.unpublish" msgstr "Unpublish" -#: src/app/main/data/nitrate.cljs:161 +#: src/app/main/data/nitrate.cljs:165 msgid "dasboard.leave-org.toast" msgstr "You're no longer part of the %s organization." @@ -374,15 +374,15 @@ msgstr "" "Projects and files will remain available to team members. The team will get " "the configuration from the new organization." -#: src/app/main/data/nitrate.cljs:395, src/app/main/ui/dashboard/team_form.cljs:157 +#: src/app/main/data/nitrate.cljs:399, src/app/main/ui/dashboard/team_form.cljs:157 msgid "dashboard.change-org-modal.title" msgstr "Change team's organization" -#: src/app/main/ui/dashboard/deleted.cljs:312 +#: src/app/main/ui/dashboard/deleted.cljs:316 msgid "dashboard.clear-trash-button" msgstr "Clear trash" -#: src/app/main/data/dashboard.cljs:332, src/app/main/data/dashboard.cljs:567, src/app/main/data/workspace/pages.cljs:198 +#: src/app/main/data/dashboard.cljs:332, src/app/main/data/dashboard.cljs:567, src/app/main/data/workspace/pages.cljs:199 msgid "dashboard.copy-suffix" msgstr "(copy)" @@ -402,7 +402,7 @@ msgstr "Pin this version" msgid "dashboard.default-team-name" msgstr "Your Penpot" -#: src/app/main/ui/dashboard/deleted.cljs:261 +#: src/app/main/ui/dashboard/deleted.cljs:265 msgid "dashboard.delete-all-forever-confirmation.description" msgstr "" "Are you sure you want to delete forever all your deleted projects and " @@ -416,15 +416,15 @@ msgstr "Are you sure you want to delete forever %s? This is a non reversible act msgid "dashboard.delete-files-success-notification" msgstr "%s files have been successfully deleted." -#: src/app/main/ui/dashboard/deleted.cljs:51, src/app/main/ui/dashboard/deleted.cljs:53, src/app/main/ui/dashboard/deleted.cljs:260, src/app/main/ui/dashboard/deleted.cljs:262, src/app/main/ui/dashboard/file_menu.cljs:221, src/app/main/ui/dashboard/file_menu.cljs:223 +#: src/app/main/ui/dashboard/deleted.cljs:53, src/app/main/ui/dashboard/deleted.cljs:55, src/app/main/ui/dashboard/deleted.cljs:264, src/app/main/ui/dashboard/deleted.cljs:266, src/app/main/ui/dashboard/file_menu.cljs:221, src/app/main/ui/dashboard/file_menu.cljs:223 msgid "dashboard.delete-forever-confirmation.title" msgstr "Delete forever" -#: src/app/main/ui/dashboard/deleted.cljs:84 +#: src/app/main/ui/dashboard/deleted.cljs:86 msgid "dashboard.delete-project-button" msgstr "Delete project" -#: src/app/main/ui/dashboard/deleted.cljs:52 +#: src/app/main/ui/dashboard/deleted.cljs:54 msgid "dashboard.delete-project-forever-confirmation.description" msgstr "" "Are you sure you want to delete forever %s project? You're going to delete " @@ -439,7 +439,7 @@ msgstr "%s has been successfully deleted." msgid "dashboard.delete-team" msgstr "Delete team" -#: src/app/main/ui/dashboard/deleted.cljs:326 +#: src/app/main/ui/dashboard/deleted.cljs:330 msgid "dashboard.deleted.empty-state-description" msgstr "Your trash is empty. Deleted files and projects will appear here." @@ -472,11 +472,11 @@ msgstr "Once a project member creates a draft, it will be displayed here." msgid "dashboard.empty-placeholder-drafts-title" msgstr "No drafts yet." -#: src/app/main/ui/dashboard/deleted.cljs:175, src/app/main/ui/dashboard/files.cljs:202, src/app/main/ui/dashboard/projects.cljs:287 +#: src/app/main/ui/dashboard/deleted.cljs:177, src/app/main/ui/dashboard/files.cljs:202, src/app/main/ui/dashboard/projects.cljs:287 msgid "dashboard.empty-placeholder-files-subtitle" msgstr "Once a project member creates a file, it will be displayed here." -#: src/app/main/ui/dashboard/deleted.cljs:172, src/app/main/ui/dashboard/files.cljs:197, src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/deleted.cljs:174, src/app/main/ui/dashboard/files.cljs:197, src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.empty-placeholder-files-title" msgstr "No files yet." @@ -622,7 +622,7 @@ msgid_plural "dashboard.file-menu.restore-files-option" msgstr[0] "Restore file" msgstr[1] "Restore files" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:334 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:333 msgid "dashboard.fonts.deleted-placeholder" msgstr "Missing font" @@ -630,15 +630,15 @@ msgstr "Missing font" msgid "dashboard.fonts.dismiss-all" msgstr "Dismiss all" -#: src/app/main/ui/dashboard/fonts.cljs:497 +#: src/app/main/ui/dashboard/fonts.cljs:495 msgid "dashboard.fonts.empty-placeholder" msgstr "Custom fonts you upload will appear here." -#: src/app/main/ui/dashboard/fonts.cljs:500 +#: src/app/main/ui/dashboard/fonts.cljs:498 msgid "dashboard.fonts.empty-placeholder-viewer" msgstr "No custom fonts yet." -#: src/app/main/ui/dashboard/fonts.cljs:501 +#: src/app/main/ui/dashboard/fonts.cljs:499 msgid "dashboard.fonts.empty-placeholder-viewer-sub" msgstr "Once a project member uploads a custom font, it will be displayed here." @@ -686,11 +686,11 @@ msgstr "" msgid "dashboard.go-to-admin-console" msgstr "Go to Admin Console" -#: src/app/main/ui/dashboard/import.cljs:553, src/app/main/ui/dashboard/project_menu.cljs:109 +#: src/app/main/ui/dashboard/import.cljs:559, src/app/main/ui/dashboard/project_menu.cljs:109 msgid "dashboard.import" msgstr "Import Penpot files" -#: src/app/main/ui/dashboard/import.cljs:299, src/app/worker/import.cljs:138, src/app/worker/import.cljs:141 +#: src/app/main/ui/dashboard/import.cljs:297, src/app/worker/import.cljs:138, src/app/worker/import.cljs:141 msgid "dashboard.import.analyze-error" msgstr "Oops! We couldn't import this file" @@ -698,7 +698,7 @@ msgstr "Oops! We couldn't import this file" msgid "dashboard.import.analyze-error.components-v2" msgstr "File with components v2 activated but this team doesn't support it yet." -#: src/app/main/ui/dashboard/import.cljs:573, src/app/main/ui/dashboard/import.cljs:589 +#: src/app/main/ui/dashboard/import.cljs:579, src/app/main/ui/dashboard/import.cljs:595 msgid "dashboard.import.auto-linked-libraries" msgid_plural "dashboard.import.auto-linked-libraries" msgstr[0] "1 library was automatically linked by name." @@ -708,7 +708,7 @@ msgstr[1] "%s libraries were automatically linked by name." msgid "dashboard.import.bad-url" msgstr "Import failed. The template URL is incorrect" -#: src/app/main/ui/dashboard/import.cljs:663 +#: src/app/main/ui/dashboard/import.cljs:668 msgid "dashboard.import.confirm-library-links" msgstr "Confirm library links" @@ -722,81 +722,73 @@ msgstr "Import failed. Please try again" msgid "dashboard.import.import-error" msgstr "There was a problem importing the file. The file wasn't imported." -#: src/app/main/ui/dashboard/import.cljs:613 +#: src/app/main/ui/dashboard/import.cljs:618 msgid "dashboard.import.import-error.check-error" msgstr "We couldn't verify this file." -#: src/app/main/ui/dashboard/import.cljs:617 +#: src/app/main/ui/dashboard/import.cljs:622 msgid "dashboard.import.import-error.corrupt-file" msgstr "This file appears to be damaged." -#: src/app/main/ui/dashboard/import.cljs:579 +#: src/app/main/ui/dashboard/import.cljs:585 msgid "dashboard.import.import-error.disclaimer" msgstr "Not all files have been imported" -#: src/app/main/ui/dashboard/import.cljs:596 +#: src/app/main/ui/dashboard/import.cljs:601 msgid "dashboard.import.import-error.message1" msgstr "The following files have errors:" -#: src/app/main/ui/dashboard/import.cljs:621 +#: src/app/main/ui/dashboard/import.cljs:626 msgid "dashboard.import.import-error.message2" msgstr "Files with errors will not be uploaded." -#: src/app/main/ui/dashboard/import.cljs:620 +#: src/app/main/ui/dashboard/import.cljs:625 msgid "dashboard.import.import-error.unknown-error" msgstr "Something went wrong while processing this file." -#: src/app/main/ui/dashboard/import.cljs:569, src/app/main/ui/dashboard/import.cljs:585 +#: src/app/main/ui/dashboard/import.cljs:575, src/app/main/ui/dashboard/import.cljs:591 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 file has been imported successfully." msgstr[1] "%s files have been imported successfully." -#: src/app/main/ui/dashboard/import.cljs:563 +#: src/app/main/ui/dashboard/import.cljs:569 msgid "dashboard.import.import-warning" msgstr "Some files containted invalid objects that have been removed." -#, unused -msgid "dashboard.import.library-link-error" -msgstr "Failed to link library" - -#, unused -msgid "dashboard.import.library-placeholder" -msgstr "Select a library…" - #: src/app/main/ui/dashboard.cljs:260 msgid "dashboard.import.no-perms" msgstr "You don’t have permission to import to this team" -#: src/app/main/ui/dashboard/import.cljs:129 +#: src/app/main/ui/dashboard/import.cljs:127 msgid "dashboard.import.progress.process-colors" msgstr "Processing colors" -#: src/app/main/ui/dashboard/import.cljs:138, src/app/main/ui/dashboard/import.cljs:141 +#: src/app/main/ui/dashboard/import.cljs:136, src/app/main/ui/dashboard/import.cljs:139 msgid "dashboard.import.progress.process-components" msgstr "Processing components" -#: src/app/main/ui/dashboard/import.cljs:135 +#: src/app/main/ui/dashboard/import.cljs:133 msgid "dashboard.import.progress.process-media" msgstr "Processing media" -#: src/app/main/ui/dashboard/import.cljs:126 +#: src/app/main/ui/dashboard/import.cljs:124 msgid "dashboard.import.progress.process-page" msgstr "Processing page: %s" -#: src/app/main/ui/dashboard/import.cljs:132 +#: src/app/main/ui/dashboard/import.cljs:130 msgid "dashboard.import.progress.process-typographies" msgstr "Processing typographies" -#: src/app/main/ui/dashboard/import.cljs:120 +#: src/app/main/ui/dashboard/import.cljs:118 msgid "dashboard.import.progress.upload-data" msgstr "Uploading data to server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:123 +#: src/app/main/ui/dashboard/import.cljs:121 msgid "dashboard.import.progress.upload-media" msgstr "Uploading file: %s" -#: src/app/main/ui/dashboard/import.cljs:362 +#: src/app/main/ui/dashboard/import.cljs:368 msgid "dashboard.import.resolve-libraries" msgstr "" "Some libraries couldn't be linked automatically. Please select the correct " @@ -836,19 +828,19 @@ msgstr "Leave org" msgid "dashboard.leave-team" msgstr "Leave team" -#: src/app/main/ui/dashboard/templates.cljs:83, src/app/main/ui/dashboard/templates.cljs:168 +#: src/app/main/ui/dashboard/templates.cljs:83, src/app/main/ui/dashboard/templates.cljs:166 msgid "dashboard.libraries-and-templates" msgstr "Libraries & Templates" -#: src/app/main/ui/dashboard/templates.cljs:265 +#: src/app/main/ui/dashboard/templates.cljs:263 msgid "dashboard.libraries-and-templates.description" msgstr "Here you have some Libraries and templates you can add to your project" -#: src/app/main/ui/dashboard/templates.cljs:169 +#: src/app/main/ui/dashboard/templates.cljs:167 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore more of them and know how to contribute" -#: src/app/main/ui/dashboard/import.cljs:429, src/app/main/ui/workspace/libraries.cljs:146 +#: src/app/main/ui/dashboard/import.cljs:435, src/app/main/ui/workspace/libraries.cljs:146 msgid "dashboard.libraries-and-templates.import-error" msgstr "There was a problem importing the template. The template wasn't imported." @@ -860,7 +852,7 @@ msgstr "Libraries" msgid "dashboard.loading-files" msgstr "loading your files …" -#: src/app/main/ui/dashboard/fonts.cljs:491 +#: src/app/main/ui/dashboard/fonts.cljs:489 msgid "dashboard.loading-fonts" msgstr "loading your fonts …" @@ -962,7 +954,7 @@ msgstr "%s members" msgid "dashboard.open-in-new-tab" msgstr "Open file in a new tab" -#: src/app/main/ui/dashboard/deleted.cljs:156, src/app/main/ui/dashboard/deleted.cljs:157, src/app/main/ui/dashboard/files.cljs:119, src/app/main/ui/dashboard/grid.cljs:446, src/app/main/ui/dashboard/projects.cljs:262, src/app/main/ui/dashboard/projects.cljs:263 +#: src/app/main/ui/dashboard/deleted.cljs:158, src/app/main/ui/dashboard/deleted.cljs:159, src/app/main/ui/dashboard/files.cljs:119, src/app/main/ui/dashboard/grid.cljs:446, src/app/main/ui/dashboard/projects.cljs:262, src/app/main/ui/dashboard/projects.cljs:263 msgid "dashboard.options" msgstr "Options" @@ -1034,7 +1026,7 @@ msgstr "Deletion unexpectedly slow" msgid "dashboard.progress-notification.slow-restore" msgstr "Restore unexpectedly slow" -#: src/app/main/ui/dashboard/deleted.cljs:61, src/app/main/ui/dashboard/projects.cljs:56 +#: src/app/main/ui/dashboard/deleted.cljs:63, src/app/main/ui/dashboard/projects.cljs:56 msgid "dashboard.projects-title" msgstr "Projects" @@ -1051,15 +1043,15 @@ msgstr "Remove as Shared Library" msgid "dashboard.removed-from-team" msgstr "You are not part of the team “%s“ anymore." -#: src/app/main/ui/dashboard/deleted.cljs:273 +#: src/app/main/ui/dashboard/deleted.cljs:277 msgid "dashboard.restore-all-confirmation.description" msgstr "You're going to restore all your projects and files. This may take a while." -#: src/app/main/ui/dashboard/deleted.cljs:272 +#: src/app/main/ui/dashboard/deleted.cljs:276 msgid "dashboard.restore-all-confirmation.title" msgstr "Restore all projects and files" -#: src/app/main/ui/dashboard/deleted.cljs:307 +#: src/app/main/ui/dashboard/deleted.cljs:311 msgid "dashboard.restore-all-deleted-button" msgstr "Restore All" @@ -1067,15 +1059,15 @@ msgstr "Restore All" msgid "dashboard.restore-files-success-notification" msgstr "%s files have been successfully restored." -#: src/app/main/ui/dashboard/deleted.cljs:81 +#: src/app/main/ui/dashboard/deleted.cljs:83 msgid "dashboard.restore-project-button" msgstr "Restore project" -#: src/app/main/ui/dashboard/deleted.cljs:41 +#: src/app/main/ui/dashboard/deleted.cljs:43 msgid "dashboard.restore-project-confirmation.description" msgstr "You're going to restore %s project and all the files contained in it." -#: src/app/main/ui/dashboard/deleted.cljs:40 +#: src/app/main/ui/dashboard/deleted.cljs:42 msgid "dashboard.restore-project-confirmation.title" msgstr "Restore Project" @@ -1127,27 +1119,27 @@ msgstr "" msgid "dashboard.select-org-modal.select" msgstr "Select an organization" -#: src/app/main/data/nitrate.cljs:338, src/app/main/ui/dashboard/team_form.cljs:155 +#: src/app/main/data/nitrate.cljs:342, src/app/main/ui/dashboard/team_form.cljs:155 msgid "dashboard.select-org-modal.title" msgstr "Add team to an organization" -#: src/app/main/ui/settings/options.cljs:67 +#: src/app/main/ui/settings/options.cljs:66 msgid "dashboard.select-ui-language" msgstr "Select UI language" -#: src/app/main/ui/settings/options.cljs:74 +#: src/app/main/ui/settings/options.cljs:73 msgid "dashboard.select-ui-theme" msgstr "Select theme" -#: src/app/main/ui/settings/options.cljs:77 +#: src/app/main/ui/settings/options.cljs:76 msgid "dashboard.select-ui-theme.dark" msgstr "Penpot Dark (default)" -#: src/app/main/ui/settings/options.cljs:78 +#: src/app/main/ui/settings/options.cljs:77 msgid "dashboard.select-ui-theme.light" msgstr "Penpot Light" -#: src/app/main/ui/settings/options.cljs:79 +#: src/app/main/ui/settings/options.cljs:78 msgid "dashboard.select-ui-theme.system" msgstr "System theme" @@ -1275,7 +1267,7 @@ msgstr "Team organization" msgid "dashboard.team-organization.add" msgstr "Add to an organization" -#: src/app/main/data/nitrate.cljs:337, src/app/main/data/nitrate.cljs:394 +#: src/app/main/data/nitrate.cljs:341, src/app/main/data/nitrate.cljs:398 msgid "dashboard.team-organization.add.no-valid-orgs" msgstr "You don't have permission to add this team to any of your organizations." @@ -1299,11 +1291,11 @@ msgstr "Remove team from organization" msgid "dashboard.team-projects" msgstr "Team projects" -#: src/app/main/ui/dashboard/templates.cljs:133 +#: src/app/main/ui/dashboard/templates.cljs:132 msgid "dashboard.template.add-to-project" msgstr "Add to your project" -#: src/app/main/ui/settings/options.cljs:72 +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.theme-change" msgstr "UI theme" @@ -1311,19 +1303,19 @@ msgstr "UI theme" msgid "dashboard.title-search" msgstr "Search results" -#: src/app/main/ui/dashboard/deleted.cljs:297 +#: src/app/main/ui/dashboard/deleted.cljs:301 msgid "dashboard.trash-info-text-part1" msgstr "Deleted files will remain in the trash for" -#: src/app/main/ui/dashboard/deleted.cljs:299 +#: src/app/main/ui/dashboard/deleted.cljs:303 msgid "dashboard.trash-info-text-part2" msgstr " %s days. " -#: src/app/main/ui/dashboard/deleted.cljs:300 +#: src/app/main/ui/dashboard/deleted.cljs:304 msgid "dashboard.trash-info-text-part3" msgstr "After that, they will be permanently deleted." -#: src/app/main/ui/dashboard/deleted.cljs:302 +#: src/app/main/ui/dashboard/deleted.cljs:306 msgid "dashboard.trash-info-text-part4" msgstr "" "If you change your mind, you can restore them or delete them permanently " @@ -1337,15 +1329,15 @@ msgstr "Type to search results" msgid "dashboard.unpublish-shared" msgstr "Unpublish Library" -#: src/app/main/ui/settings/options.cljs:83 +#: src/app/main/ui/settings/options.cljs:82 msgid "dashboard.update-settings" msgstr "Update settings" -#: src/app/main/ui/dashboard/sidebar.cljs:1323 +#: src/app/main/ui/dashboard/sidebar.cljs:1328 msgid "dashboard.upgrade-plan.no-limits" msgstr "No limits on creativity" -#: src/app/main/ui/dashboard/sidebar.cljs:1321 +#: src/app/main/ui/dashboard/sidebar.cljs:1326 msgid "dashboard.upgrade-plan.penpot-free" msgstr "Penpot Free" @@ -1353,34 +1345,34 @@ msgstr "Penpot Free" msgid "dashboard.user-no-longer-belong-org" msgstr "You are no longer a member of the organization %s" -#: src/app/main/ui/settings/options.cljs:110 +#: src/app/main/ui/settings/options.cljs:109 msgid "dashboard.webgl-switch.beta" msgstr "Beta" -#: src/app/main/ui/settings/options.cljs:111 +#: src/app/main/ui/settings/options.cljs:110 msgid "dashboard.webgl-switch.description" msgstr "" "WebGL rendering can improve performance, but it is in beta and may be less " "stable. Some visual differences may appear between the canvas, exports " "(SVG/PDF), and view mode." -#: src/app/main/ui/settings/options.cljs:114 +#: src/app/main/ui/settings/options.cljs:113 msgid "dashboard.webgl-switch.disabled" msgstr "Disabled" -#: src/app/main/ui/settings/options.cljs:114 +#: src/app/main/ui/settings/options.cljs:113 msgid "dashboard.webgl-switch.enabled" msgstr "Enabled" -#: src/app/main/ui/settings/options.cljs:117 +#: src/app/main/ui/settings/options.cljs:116 msgid "dashboard.webgl-switch.feedback" msgstr "Give feedback" -#: src/app/main/ui/settings/options.cljs:113 +#: src/app/main/ui/settings/options.cljs:112 msgid "dashboard.webgl-switch.status" msgstr "Status" -#: src/app/main/ui/settings/options.cljs:109 +#: src/app/main/ui/settings/options.cljs:108 msgid "dashboard.webgl-switch.title" msgstr "WebGL rendering" @@ -1459,7 +1451,7 @@ msgstr "Components to update:" msgid "ds.confirm-allow" msgstr "Allow" -#: src/app/main/ui/comments.cljs:693, src/app/main/ui/confirm.cljs:42, src/app/main/ui/settings/subscription.cljs:304, src/app/main/ui/settings/subscription.cljs:337, src/app/main/ui/settings/subscription.cljs:777, src/app/main/ui/settings/subscription.cljs:824, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436 +#: src/app/main/ui/comments.cljs:693, src/app/main/ui/confirm.cljs:42, src/app/main/ui/settings/subscription.cljs:303, src/app/main/ui/settings/subscription.cljs:336, src/app/main/ui/settings/subscription.cljs:776, src/app/main/ui/settings/subscription.cljs:823, src/app/main/ui/workspace/plugins.cljs:373, src/app/main/ui/workspace/plugins.cljs:436 msgid "ds.confirm-cancel" msgstr "Cancel" @@ -1581,7 +1573,7 @@ msgstr "Domain not allowed" msgid "errors.email-has-permanent-bounces" msgstr "The email «%s» has many permanent bounce reports." -#: src/app/main/ui/dashboard/team.cljs:219, src/app/main/ui/dashboard/team.cljs:1062, src/app/main/ui/onboarding/team_choice.cljs:109 +#: src/app/main/ui/dashboard/team.cljs:219, src/app/main/ui/dashboard/team.cljs:1062, src/app/main/ui/onboarding/team_choice.cljs:107 msgid "errors.email-spam-or-permanent-bounces" msgstr "The email «%s» has been reported as spam or permanently bounce." @@ -1619,13 +1611,13 @@ msgstr "" "features of the file you are trying to open. Migrations for '%s' need to be " "applied before the file can be opened." -#: src/app/main/ui/dashboard/fonts.cljs:343 +#: src/app/main/ui/dashboard/fonts.cljs:341 msgid "errors.font-family-invalid-chars" msgstr "" "The font family name can only contain letters, numbers, spaces, hyphens, " "underscores, and dots." -#: src/app/main/data/auth.cljs:354, src/app/main/errors.cljs:190, src/app/main/ui/auth/login.cljs:103, src/app/main/ui/auth/register.cljs:112, src/app/main/ui/auth/register.cljs:304, src/app/main/ui/auth/verify_token.cljs:119, src/app/main/ui/dashboard/fonts.cljs:388, src/app/main/ui/dashboard/team.cljs:227, src/app/main/ui/dashboard/team.cljs:1065, src/app/main/ui/onboarding/team_choice.cljs:112, src/app/main/ui/settings/feedback.cljs:84, src/app/main/ui/settings/integrations.cljs:156 +#: src/app/main/data/auth.cljs:354, src/app/main/errors.cljs:190, src/app/main/ui/auth/login.cljs:103, src/app/main/ui/auth/register.cljs:112, src/app/main/ui/auth/register.cljs:304, src/app/main/ui/auth/verify_token.cljs:119, src/app/main/ui/dashboard/fonts.cljs:386, src/app/main/ui/dashboard/team.cljs:227, src/app/main/ui/dashboard/team.cljs:1065, src/app/main/ui/onboarding/team_choice.cljs:110, src/app/main/ui/settings/feedback.cljs:84, src/app/main/ui/settings/integrations.cljs:156, src/app/main/ui/workspace/main_menu.cljs:949 msgid "errors.generic" msgstr "Something wrong has happened." @@ -1687,7 +1679,7 @@ msgstr "This invite might be canceled or may be expired." msgid "errors.ldap-disabled" msgstr "LDAP authentication is disabled." -#: src/app/main/errors.cljs:403, src/app/main/ui/dashboard/team.cljs:214, src/app/main/ui/onboarding/team_choice.cljs:104 +#: src/app/main/errors.cljs:403, src/app/main/ui/dashboard/team.cljs:214, src/app/main/ui/onboarding/team_choice.cljs:102 msgid "errors.max-quota-reached" msgstr "You have reached the '%s' quota. Contact support." @@ -1696,7 +1688,7 @@ msgstr "You have reached the '%s' quota. Contact support." msgid "errors.max-quote-reached" msgstr "" -#: src/app/main/ui/dashboard/team.cljs:210, src/app/main/ui/dashboard/team.cljs:1053, src/app/main/ui/onboarding/team_choice.cljs:100 +#: src/app/main/ui/dashboard/team.cljs:210, src/app/main/ui/dashboard/team.cljs:1053, src/app/main/ui/onboarding/team_choice.cljs:98 msgid "errors.maximum-invitations-by-request-reached" msgstr "" "The maximum (%s) number of emails that can be invited in a single request " @@ -1760,7 +1752,7 @@ msgstr "Invalid data in clipboard" msgid "errors.profile-blocked" msgstr "The profile is blocked" -#: src/app/main/ui/auth/recovery_request.cljs:53, src/app/main/ui/dashboard/team.cljs:205, src/app/main/ui/dashboard/team.cljs:700, src/app/main/ui/dashboard/team.cljs:1048, src/app/main/ui/onboarding/team_choice.cljs:96, src/app/main/ui/settings/change_email.cljs:33 +#: src/app/main/ui/auth/recovery_request.cljs:53, src/app/main/ui/dashboard/team.cljs:205, src/app/main/ui/dashboard/team.cljs:700, src/app/main/ui/dashboard/team.cljs:1048, src/app/main/ui/onboarding/team_choice.cljs:94, src/app/main/ui/settings/change_email.cljs:33 msgid "errors.profile-is-muted" msgstr "Your profile has emails muted (spam reports or high bounces)." @@ -1814,12 +1806,12 @@ msgstr "Cannot complete drop, a set with same name already exists at path." msgid "errors.token-theme-already-exists" msgstr "Theme Option with the same name exists" -#: src/app/common/files/tokens.cljc:298 +#: src/app/main/data/media.cljs:74 #, unused msgid "errors.token-theme-not-existing-sets" msgstr "The theme refers to some not existing sets: %s" -#: src/app/main/data/workspace/tokens/errors.cljs:116, src/app/main/ui/workspace/tokens/management/forms/typography.cljs:250 +#: src/app/main/data/workspace/tokens/errors.cljs:111, src/app/main/ui/workspace/tokens/management/forms/typography.cljs:250 msgid "errors.tokens.composite-line-height-needs-font-size" msgstr "Line Height depends on Font Size. Add a Font Size to get the resolved value." @@ -1827,7 +1819,7 @@ msgstr "Line Height depends on Font Size. Add a Font Size to get the resolved va msgid "errors.tokens.empty-field" msgstr "This field cannot be empty" -#: src/app/main/data/workspace/tokens/errors.cljs:46 +#: src/app/main/data/workspace/tokens/errors.cljs:41 msgid "errors.tokens.empty-input" msgstr "Token value cannot be empty" @@ -1835,19 +1827,19 @@ msgstr "Token value cannot be empty" msgid "errors.tokens.error-parse" msgstr "Import Error: Could not parse JSON." -#: src/app/main/data/workspace/tokens/errors.cljs:37, src/app/main/data/workspace/tokens/errors.cljs:42 +#: src/app/main/data/workspace/tokens/errors.cljs:32, src/app/main/data/workspace/tokens/errors.cljs:37 msgid "errors.tokens.import-error" msgstr "Import Error:" -#: src/app/main/data/workspace/tokens/errors.cljs:54 +#: src/app/main/data/workspace/tokens/errors.cljs:49 msgid "errors.tokens.invalid-color" msgstr "Invalid color value: %s" -#: src/app/main/data/workspace/tokens/errors.cljs:108 +#: src/app/main/data/workspace/tokens/errors.cljs:103 msgid "errors.tokens.invalid-font-family-token-value" msgstr "Invalid token value: you can only reference a font-family token" -#: src/app/main/data/workspace/tokens/errors.cljs:104 +#: src/app/main/data/workspace/tokens/errors.cljs:99 msgid "errors.tokens.invalid-font-weight-token-value" msgstr "" "Invalid font weight value: use numeric values (100-950) or standard names " @@ -1868,37 +1860,37 @@ msgstr "" "Token names should only contain letters and digits separated by . " "characters and must not start with a $ sign." -#: src/app/main/data/workspace/tokens/errors.cljs:120 +#: src/app/main/data/workspace/tokens/errors.cljs:115 msgid "errors.tokens.invalid-shadow-type-token-value" msgstr "Invalid shadow type: only 'innerShadow' or 'dropShadow' are accepted" -#: src/app/main/data/workspace/tokens/errors.cljs:96 +#: src/app/main/data/workspace/tokens/errors.cljs:91 msgid "errors.tokens.invalid-text-case-token-value" msgstr "" "Invalid token value: only none, Uppercase, Lowercase or Capitalize are " "accepted" -#: src/app/main/data/workspace/tokens/errors.cljs:100 +#: src/app/main/data/workspace/tokens/errors.cljs:95 msgid "errors.tokens.invalid-text-decoration-token-value" msgstr "Invalid token value: only none, underline and strike-through are accepted" -#: src/app/main/data/workspace/tokens/errors.cljs:132 +#: src/app/main/data/workspace/tokens/errors.cljs:127 msgid "errors.tokens.invalid-token-value-shadow" msgstr "Invalid value: must reference a composite shadow token." -#: src/app/main/data/workspace/tokens/errors.cljs:112 +#: src/app/main/data/workspace/tokens/errors.cljs:107 msgid "errors.tokens.invalid-token-value-typography" msgstr "Invalid value: must reference a composite typography token." -#: src/app/main/data/workspace/tokens/errors.cljs:76, src/app/main/data/workspace/tokens/errors.cljs:88, src/app/main/data/workspace/tokens/errors.cljs:92 +#: src/app/main/data/workspace/tokens/errors.cljs:71, src/app/main/data/workspace/tokens/errors.cljs:83, src/app/main/data/workspace/tokens/errors.cljs:87 msgid "errors.tokens.invalid-value" msgstr "Invalid token value: %s" -#: src/app/main/data/workspace/tokens/errors.cljs:72 +#: src/app/main/data/workspace/tokens/errors.cljs:67 msgid "errors.tokens.missing-references" msgstr "Missing token references: " -#: src/app/main/data/workspace/tokens/errors.cljs:68, src/app/main/ui/workspace/tokens/management/forms/controls/utils.cljs:126 +#: src/app/main/data/workspace/tokens/errors.cljs:63, src/app/main/ui/workspace/tokens/management/forms/controls/utils.cljs:126 msgid "errors.tokens.name-collision" msgstr "" "Group name of %s conflicts with a token of the same name in another active " @@ -1908,43 +1900,39 @@ msgstr "" msgid "errors.tokens.no-token-files-found" msgstr "No tokens, sets, or themes were found in this file." -#: src/app/main/data/workspace/tokens/errors.cljs:58 +#: src/app/main/data/workspace/tokens/errors.cljs:53 msgid "errors.tokens.number-too-large" msgstr "Invalid token value. The resolved value is too large: %s" -#: src/app/main/data/workspace/tokens/errors.cljs:88, src/app/main/data/workspace/tokens/warnings.cljs:15 +#: src/app/main/data/workspace/tokens/errors.cljs:83, src/app/main/data/workspace/tokens/warnings.cljs:15 msgid "errors.tokens.opacity-range" msgstr "Opacity must be between 0 and 100% or 0 and 1 (e.g. 50% or 0.5)." -#: src/app/main/data/workspace/tokens/errors.cljs:50, src/app/main/ui/workspace/tokens/management/forms/shadow.cljs:304, src/app/main/ui/workspace/tokens/management/forms/typography.cljs:242 +#: src/app/main/data/workspace/tokens/errors.cljs:45, src/app/main/ui/workspace/tokens/management/forms/shadow.cljs:304, src/app/main/ui/workspace/tokens/management/forms/typography.cljs:242 msgid "errors.tokens.self-reference" msgstr "Token has self reference" -#: src/app/main/data/workspace/tokens/errors.cljs:124 +#: src/app/main/data/workspace/tokens/errors.cljs:119 msgid "errors.tokens.shadow-blur-range" msgstr "Shadow blur must be greater than or equal to 0." -#: src/app/main/data/workspace/tokens/errors.cljs:128 +#: src/app/main/data/workspace/tokens/errors.cljs:123 msgid "errors.tokens.shadow-spread-range" msgstr "Shadow spread must be greater than or equal to 0." -#: src/app/main/data/workspace/tokens/errors.cljs:92, src/app/main/data/workspace/tokens/warnings.cljs:19 +#: src/app/main/data/workspace/tokens/errors.cljs:87, src/app/main/data/workspace/tokens/warnings.cljs:19 msgid "errors.tokens.stroke-width-range" msgstr "Stroke width must be greater than or equal to 0." -#: src/app/main/data/workspace/tokens/errors.cljs:84 +#: src/app/main/data/workspace/tokens/errors.cljs:79 msgid "errors.tokens.value-with-percent" msgstr "Invalid value: % is not allowed." -#: src/app/main/data/workspace/tokens/errors.cljs:80 +#: src/app/main/data/workspace/tokens/errors.cljs:75 msgid "errors.tokens.value-with-units" msgstr "Invalid value: Units are not allowed." #: src/app/main/data/media.cljs:74 -msgid "errors.token-theme-not-existing-sets" -msgstr "The theme refers to some not existing sets: %s" - -#: src/app/main/data/media.cljs:73 msgid "errors.unexpected-error" msgstr "An unexpected error occurred." @@ -2260,15 +2248,15 @@ msgstr "Width" msgid "inspect.attributes.typography" msgstr "Typography" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:314 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:313 msgid "inspect.attributes.typography.font-family" msgstr "Font Family" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:338, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:344 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:337, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:343 msgid "inspect.attributes.typography.font-size" msgstr "Font Size" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:354 msgid "inspect.attributes.typography.font-style" msgstr "Font Style" @@ -2277,15 +2265,15 @@ msgstr "Font Style" msgid "inspect.attributes.typography.font-weight" msgstr "Font Weight" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:409, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:420 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:407, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:418 msgid "inspect.attributes.typography.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:391, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:399 msgid "inspect.attributes.typography.line-height" msgstr "Line Height" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:320 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:319 msgid "inspect.attributes.typography.mixed-font-family" msgstr "Mixed Font Families" @@ -2316,11 +2304,11 @@ msgstr "Underline" msgid "inspect.attributes.typography.text-transform" msgstr "Text Transform" -#: src/app/main/ui/inspect/attributes/text.cljs:125, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:451 +#: src/app/main/ui/inspect/attributes/text.cljs:125, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:448 msgid "inspect.attributes.typography.text-transform.capitalize" msgstr "Capitalize" -#: src/app/main/ui/inspect/attributes/text.cljs:123, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:455 +#: src/app/main/ui/inspect/attributes/text.cljs:123, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:452 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Lower Case" @@ -2332,7 +2320,7 @@ msgstr "None" msgid "inspect.attributes.typography.text-transform.unset" msgstr "Unset" -#: src/app/main/ui/inspect/attributes/text.cljs:126, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:445 +#: src/app/main/ui/inspect/attributes/text.cljs:126, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:442 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Upper Case" @@ -2463,23 +2451,23 @@ msgstr "Resolved value:" msgid "inspect.tabs.styles.variants-panel" msgstr "Variant Properties" -#: src/app/main/ui/settings/integrations.cljs:598 +#: src/app/main/ui/settings/integrations.cljs:596 msgid "integrations.access-tokens.create" msgstr "Create new access token" -#: src/app/main/ui/settings/integrations.cljs:606 +#: src/app/main/ui/settings/integrations.cljs:604 msgid "integrations.access-tokens.empty.add-one" msgstr "Press the button \"Create new access token\" to generate one." -#: src/app/main/ui/settings/integrations.cljs:605 +#: src/app/main/ui/settings/integrations.cljs:603 msgid "integrations.access-tokens.empty.no-access-tokens" msgstr "You have no tokens so far." -#: src/app/main/ui/settings/integrations.cljs:588 +#: src/app/main/ui/settings/integrations.cljs:586 msgid "integrations.access-tokens.personal" msgstr "Personal access tokens" -#: src/app/main/ui/settings/integrations.cljs:593 +#: src/app/main/ui/settings/integrations.cljs:591 msgid "integrations.access-tokens.personal.description" msgstr "" "Personal access tokens function like an alternative to our login/password " @@ -2574,7 +2562,7 @@ msgstr "The MCP key will expire on %s" msgid "integrations.mcp-key.will-not-expire" msgstr "The MCP key has no expiration date" -#: src/app/main/ui/settings/integrations.cljs:488 +#: src/app/main/ui/settings/integrations.cljs:486 msgid "integrations.mcp-server.description" msgstr "" "The Penpot MCP Server enables MCP clients to interact directly with Penpot " @@ -2585,57 +2573,57 @@ msgstr "" msgid "integrations.mcp-server.mcp-keys.copy" msgstr "Copy link" -#: src/app/main/ui/settings/integrations.cljs:566 +#: src/app/main/ui/settings/integrations.cljs:564 msgid "integrations.mcp-server.mcp-keys.help" msgstr "How to configure MCP clients" -#: src/app/main/ui/settings/integrations.cljs:554 +#: src/app/main/ui/settings/integrations.cljs:552 msgid "integrations.mcp-server.mcp-keys.info" msgstr "" "This is the server url you'll need to configure your MCP client in order to " "connect it to the Penpot MCP server." -#: src/app/main/ui/settings/integrations.cljs:536 +#: src/app/main/ui/settings/integrations.cljs:534 msgid "integrations.mcp-server.mcp-keys.regenerate" msgstr "Regenerate MCP key" -#: src/app/main/ui/settings/integrations.cljs:529 +#: src/app/main/ui/settings/integrations.cljs:527 msgid "integrations.mcp-server.mcp-keys.title" msgstr "MCP key" -#: src/app/main/ui/settings/integrations.cljs:537 +#: src/app/main/ui/settings/integrations.cljs:535 msgid "integrations.mcp-server.mcp-keys.tootip" msgstr "The MCP key is needed for the MCP client set up" -#: src/app/main/ui/settings/integrations.cljs:494 +#: src/app/main/ui/settings/integrations.cljs:492 msgid "integrations.mcp-server.status" msgstr "Status" -#: src/app/main/ui/settings/integrations.cljs:514 +#: src/app/main/ui/settings/integrations.cljs:512 msgid "integrations.mcp-server.status.disabled" msgstr "Disabled" -#: src/app/main/ui/settings/integrations.cljs:513 +#: src/app/main/ui/settings/integrations.cljs:511 msgid "integrations.mcp-server.status.enabled" msgstr "Enabled" -#: src/app/main/ui/settings/integrations.cljs:504 +#: src/app/main/ui/settings/integrations.cljs:502 msgid "integrations.mcp-server.status.expired.0" msgstr "" "The MCP key used to connect to the MCP server has expired. As a result, the " "connection cannot be established." -#: src/app/main/ui/settings/integrations.cljs:509 +#: src/app/main/ui/settings/integrations.cljs:507 msgid "integrations.mcp-server.status.expired.1" msgstr "" "Please regenerate the MCP key and update your client configuration with the " "new key." -#: src/app/main/ui/settings/integrations.cljs:479 +#: src/app/main/ui/settings/integrations.cljs:477 msgid "integrations.mcp-server.title" msgstr "MCP Server" -#: src/app/main/ui/settings/integrations.cljs:483 +#: src/app/main/ui/settings/integrations.cljs:481 msgid "integrations.mcp-server.title.beta" msgstr "Beta" @@ -2651,7 +2639,7 @@ msgstr "The name can help to know what's the token for" msgid "integrations.no-expiration" msgstr "No expiration date" -#: src/app/main/ui/settings/integrations.cljs:468 +#: src/app/main/ui/settings/integrations.cljs:466 msgid "integrations.notification.success.copied-link" msgstr "Link copied to clipboard" @@ -2663,11 +2651,11 @@ msgstr "Token created successfully" msgid "integrations.notification.success.mcp-key-copied" msgstr "MCP key copied" -#: src/app/main/ui/settings/integrations.cljs:433 +#: src/app/main/ui/settings/integrations.cljs:431 msgid "integrations.notification.success.mcp-server-disabled" msgstr "MCP server disabled" -#: src/app/main/ui/settings/integrations.cljs:432 +#: src/app/main/ui/settings/integrations.cljs:430 msgid "integrations.notification.success.mcp-server-enabled" msgstr "MCP server enabled" @@ -2689,7 +2677,7 @@ msgstr "Regenerate MCP key" msgid "integrations.regenerate-mcp-key.title.created" msgstr "MCP key regenerated" -#: src/app/main/ui/settings/integrations.cljs:626 +#: src/app/main/ui/settings/integrations.cljs:624 msgid "integrations.title" msgstr "Integrations" @@ -2715,11 +2703,11 @@ msgstr "Mark all as read" msgid "label.shortcuts" msgstr "Shortcuts" -#: src/app/main/ui/dashboard/sidebar.cljs:1390 +#: src/app/main/ui/dashboard/sidebar.cljs:1395 msgid "labels.about-penpot" msgstr "About Penpot" -#: src/app/main/data/common.cljs:90, src/app/main/data/team.cljs:163, src/app/main/data/team.cljs:584, src/app/main/ui/dashboard/import.cljs:671 +#: src/app/main/data/common.cljs:90, src/app/main/data/team.cljs:163, src/app/main/data/team.cljs:584, src/app/main/ui/dashboard/import.cljs:676 msgid "labels.accept" msgstr "Accept" @@ -2744,7 +2732,7 @@ msgstr "Add custom font" msgid "labels.adding" msgstr "Adding..." -#: src/app/main/ui/dashboard/team.cljs:149, src/app/main/ui/dashboard/team.cljs:402, src/app/main/ui/dashboard/team.cljs:645, src/app/main/ui/dashboard/team.cljs:675, src/app/main/ui/onboarding/team_choice.cljs:58 +#: src/app/main/ui/dashboard/team.cljs:149, src/app/main/ui/dashboard/team.cljs:402, src/app/main/ui/dashboard/team.cljs:645, src/app/main/ui/dashboard/team.cljs:675, src/app/main/ui/onboarding/team_choice.cljs:57 msgid "labels.admin" msgstr "Admin" @@ -2783,11 +2771,15 @@ msgstr "Blur" msgid "labels.blur-effects" msgstr "Blur effects" +#: src/app/main/data/common.cljs:119, src/app/main/ui/dashboard/change_owner.cljs:67, src/app/main/ui/dashboard/change_owner.cljs:174, src/app/main/ui/dashboard/import.cljs:655, src/app/main/ui/dashboard/team.cljs:866, src/app/main/ui/dashboard/team.cljs:1345, src/app/main/ui/delete_shared.cljs:36, src/app/main/ui/exports/assets.cljs:163, src/app/main/ui/exports/files.cljs:167, src/app/main/ui/settings/integrations.cljs:228, src/app/main/ui/viewer/share_link.cljs:204, src/app/main/ui/workspace/sidebar/assets/groups.cljs:178, src/app/main/ui/workspace/tokens/export/modal.cljs:43, src/app/main/ui/workspace/tokens/import/modal.cljs:268, src/app/main/ui/workspace/tokens/import_from_library.cljs:88, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:359, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:73, src/app/main/ui/workspace/tokens/settings/menu.cljs:104, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:242 +msgid "labels.cancel" +msgstr "Cancel" + #: src/app/main/data/common.cljs:119, src/app/main/ui/dashboard/change_owner.cljs:67, src/app/main/ui/dashboard/change_owner.cljs:174, src/app/main/ui/dashboard/import.cljs:543, src/app/main/ui/dashboard/team.cljs:866, src/app/main/ui/dashboard/team.cljs:1345, src/app/main/ui/delete_shared.cljs:36, src/app/main/ui/exports/assets.cljs:163, src/app/main/ui/exports/files.cljs:167, src/app/main/ui/settings/integrations.cljs:228, src/app/main/ui/viewer/share_link.cljs:204, src/app/main/ui/workspace/sidebar/assets/groups.cljs:178, src/app/main/ui/workspace/tokens/export/modal.cljs:43, src/app/main/ui/workspace/tokens/import/modal.cljs:268, src/app/main/ui/workspace/tokens/import_from_library.cljs:88, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:364, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:73, src/app/main/ui/workspace/tokens/settings/menu.cljs:104, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:242 msgid "labels.canva" msgstr "Canva" -#: src/app/main/data/common.cljs:96, src/app/main/ui/confirm.cljs:78, src/app/main/ui/dashboard/comments.cljs:101, src/app/main/ui/dashboard/projects.cljs:98, src/app/main/ui/ds/product/panel_title.cljs:32, src/app/main/ui/exports/files.cljs:192, src/app/main/ui/nitrate/nitrate_code_activation_modal.cljs:72, src/app/main/ui/settings/integrations.cljs:141, src/app/main/ui/settings/integrations.cljs:252, src/app/main/ui/settings/integrations.cljs:289, src/app/main/ui/settings/integrations.cljs:330, src/app/main/ui/settings/subscription.cljs:384, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:175, src/app/main/ui/workspace/libraries.cljs:683, src/app/main/ui/workspace/sidebar/layers.cljs:579, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:544, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:567, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:43, src/app/main/ui/workspace/sidebar.cljs:263, src/app/main/ui/workspace/tokens/export.cljs:25, src/app/main/ui/workspace/tokens/import.cljs:19, src/app/main/ui/workspace/tokens/import_from_library.cljs:63, src/app/main/ui/workspace/tokens/management/forms/modals.cljs:99, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:113, src/app/main/ui/workspace/tokens/remapping_modal.cljs:93, src/app/main/ui/workspace/tokens/settings/menu.cljs:77, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:61, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:144, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:458, src/app/main/ui/workspace/webgl_unavailable_modal.cljs:56 +#: src/app/main/data/common.cljs:96, src/app/main/ui/confirm.cljs:78, src/app/main/ui/dashboard/comments.cljs:101, src/app/main/ui/dashboard/projects.cljs:98, src/app/main/ui/ds/product/panel_title.cljs:32, src/app/main/ui/exports/files.cljs:192, src/app/main/ui/nitrate/nitrate_code_activation_modal.cljs:72, src/app/main/ui/settings/integrations.cljs:141, src/app/main/ui/settings/integrations.cljs:252, src/app/main/ui/settings/integrations.cljs:289, src/app/main/ui/settings/integrations.cljs:330, src/app/main/ui/settings/subscription.cljs:383, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:175, src/app/main/ui/workspace/libraries.cljs:683, src/app/main/ui/workspace/sidebar/layers.cljs:579, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:542, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:565, src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs:43, src/app/main/ui/workspace/sidebar.cljs:263, src/app/main/ui/workspace/tokens/export.cljs:25, src/app/main/ui/workspace/tokens/import.cljs:19, src/app/main/ui/workspace/tokens/import_from_library.cljs:63, src/app/main/ui/workspace/tokens/management/forms/modals.cljs:99, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:114, src/app/main/ui/workspace/tokens/remapping_modal.cljs:93, src/app/main/ui/workspace/tokens/settings/menu.cljs:77, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:61, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:144, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:458, src/app/main/ui/workspace/webgl_unavailable_modal.cljs:56 msgid "labels.close" msgstr "Close" @@ -2819,7 +2811,7 @@ msgstr "Comments" msgid "labels.community" msgstr "Community" -#: src/app/main/ui/dashboard/sidebar.cljs:1377 +#: src/app/main/ui/dashboard/sidebar.cljs:1382 msgid "labels.community-contributions" msgstr "Community & Contributions" @@ -2835,11 +2827,11 @@ msgstr "Confirm password" msgid "labels.contact-support" msgstr "Contact support" -#: src/app/main/ui/settings/sidebar.cljs:136 +#: src/app/main/ui/settings/sidebar.cljs:135 msgid "labels.contact-us" msgstr "Contact us" -#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/dashboard/deleted.cljs:43, src/app/main/ui/dashboard/deleted.cljs:274, src/app/main/ui/dashboard/file_menu.cljs:210, src/app/main/ui/dashboard/import.cljs:656, src/app/main/ui/dashboard/team.cljs:873, src/app/main/ui/exports/files.cljs:172, src/app/main/ui/settings/subscription.cljs:310, src/app/main/ui/settings/subscription.cljs:344 +#: src/app/main/ui/auth/login.cljs:203, src/app/main/ui/dashboard/deleted.cljs:45, src/app/main/ui/dashboard/deleted.cljs:278, src/app/main/ui/dashboard/file_menu.cljs:210, src/app/main/ui/dashboard/import.cljs:661, src/app/main/ui/dashboard/team.cljs:873, src/app/main/ui/exports/files.cljs:172, src/app/main/ui/settings/subscription.cljs:309, src/app/main/ui/settings/subscription.cljs:343 msgid "labels.continue" msgstr "Continue" @@ -2883,11 +2875,11 @@ msgstr "Enter new team name" msgid "labels.custom-fonts" msgstr "Custom fonts" -#: src/app/main/ui/settings/sidebar.cljs:83 +#: src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/file_menu.cljs:337, src/app/main/ui/dashboard/fonts.cljs:287, src/app/main/ui/dashboard/fonts.cljs:365, src/app/main/ui/dashboard/fonts.cljs:399, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:1379, src/app/main/ui/settings/integrations.cljs:372, src/app/main/ui/settings/profile.cljs:117, src/app/main/ui/settings/profile.cljs:128, src/app/main/ui/settings/profile.cljs:129, src/app/main/ui/workspace/sidebar/assets/common.cljs:231, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:223, src/app/main/ui/workspace/sidebar/versions.cljs:252, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:357, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:111, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:66, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:378 +#: src/app/main/ui/dashboard/file_menu.cljs:337, src/app/main/ui/dashboard/fonts.cljs:286, src/app/main/ui/dashboard/fonts.cljs:363, src/app/main/ui/dashboard/fonts.cljs:397, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:1379, src/app/main/ui/settings/integrations.cljs:372, src/app/main/ui/settings/profile.cljs:117, src/app/main/ui/settings/profile.cljs:128, src/app/main/ui/settings/profile.cljs:129, src/app/main/ui/workspace/sidebar/assets/common.cljs:231, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:223, src/app/main/ui/workspace/sidebar/versions.cljs:258, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:352, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:111, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:66, src/app/main/ui/workspace/tokens/themes/create_modal.cljs:378 msgid "labels.delete" msgstr "Delete" @@ -2915,7 +2907,7 @@ msgstr "Are you sure you want to delete your profile photo?" msgid "labels.delete-profile-photo.title" msgstr "Delete profile photo" -#: src/app/main/ui/dashboard/deleted.cljs:214 +#: src/app/main/ui/dashboard/deleted.cljs:216 msgid "labels.deleted" msgstr "Deleted" @@ -2933,6 +2925,7 @@ msgid "labels.discard" msgstr "Discard" #: src/app/main/data/workspace/mcp.cljs:186 +#, unused msgid "labels.dismiss" msgstr "Dismiss" @@ -2940,7 +2933,7 @@ msgstr "Dismiss" msgid "labels.download" msgstr "Download %s" -#: src/app/main/ui/dashboard/fonts.cljs:284 +#: src/app/main/ui/dashboard/fonts.cljs:283 msgid "labels.download-simple" msgstr "Download" @@ -2956,7 +2949,7 @@ msgstr "Drafts" msgid "labels.duplicate" msgstr "Duplicate" -#: src/app/main/ui/comments.cljs:1011, src/app/main/ui/dashboard/fonts.cljs:281, src/app/main/ui/dashboard/team.cljs:1377, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:218, src/app/main/ui/workspace/tokens/themes.cljs:52 +#: src/app/main/ui/comments.cljs:1011, src/app/main/ui/dashboard/fonts.cljs:280, src/app/main/ui/dashboard/team.cljs:1377, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:218, src/app/main/ui/workspace/tokens/themes.cljs:52 msgid "labels.edit" msgstr "Edit" @@ -2964,7 +2957,7 @@ msgstr "Edit" msgid "labels.edit-file" msgstr "Edit file" -#: src/app/main/ui/dashboard/team.cljs:147, src/app/main/ui/dashboard/team.cljs:399, src/app/main/ui/dashboard/team.cljs:646, src/app/main/ui/dashboard/team.cljs:679, src/app/main/ui/onboarding/team_choice.cljs:57 +#: src/app/main/ui/dashboard/team.cljs:147, src/app/main/ui/dashboard/team.cljs:399, src/app/main/ui/dashboard/team.cljs:646, src/app/main/ui/dashboard/team.cljs:679, src/app/main/ui/onboarding/team_choice.cljs:56 msgid "labels.editor" msgstr "Editor" @@ -2972,7 +2965,7 @@ msgstr "Editor" msgid "labels.empty" msgstr "Empty" -#: src/app/main/ui/dashboard/import.cljs:305, src/app/worker/import.cljs:197, src/app/worker/import.cljs:241 +#: src/app/main/ui/dashboard/import.cljs:303, src/app/worker/import.cljs:197, src/app/worker/import.cljs:241 msgid "labels.error" msgstr "Error" @@ -2981,7 +2974,7 @@ msgstr "Error" msgid "labels.event" msgstr "Event" -#: src/app/main/data/workspace/versions.cljs:303 +#: src/app/main/data/workspace/versions.cljs:314 msgid "labels.exit" msgstr "Exit" @@ -3013,7 +3006,7 @@ msgstr "Fill" msgid "labels.flex-layout" msgstr "Flex layout" -#: src/app/main/ui/dashboard/fonts.cljs:474 +#: src/app/main/ui/dashboard/fonts.cljs:472 msgid "labels.font-family" msgstr "Font Family" @@ -3021,7 +3014,7 @@ msgstr "Font Family" msgid "labels.font-providers" msgstr "Font providers" -#: src/app/main/ui/dashboard/fonts.cljs:475 +#: src/app/main/ui/dashboard/fonts.cljs:473 msgid "labels.font-variants" msgstr "Styles" @@ -3063,7 +3056,7 @@ msgstr "Grid layout" msgid "labels.help-center" msgstr "Help Center" -#: src/app/main/ui/dashboard/sidebar.cljs:1366 +#: src/app/main/ui/dashboard/sidebar.cljs:1371 msgid "labels.help-learning" msgstr "Help & Learning" @@ -3087,11 +3080,11 @@ msgstr "Inactive" msgid "labels.info" msgstr "Info" -#: src/app/main/ui/dashboard/fonts.cljs:472 +#: src/app/main/ui/dashboard/fonts.cljs:470 msgid "labels.installed-fonts" msgstr "Installed fonts" -#: src/app/main/ui/settings/sidebar.cljs:123 +#: src/app/main/ui/settings/sidebar.cljs:122 msgid "labels.integrations" msgstr "Integrations" @@ -3115,7 +3108,7 @@ msgstr "InVision" msgid "labels.invitations" msgstr "Invitations" -#: src/app/main/ui/settings/options.cljs:62 +#: src/app/main/ui/settings/options.cljs:61 msgid "labels.language" msgstr "Language" @@ -3131,11 +3124,11 @@ msgstr "Learning Center" msgid "labels.libraries-and-templates" msgstr "Libraries & Templates" -#: src/app/main/ui/auth/verify_token.cljs:125, src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:146, src/app/main/ui/dashboard/import.cljs:264, src/app/main/ui/dashboard/placeholder.cljs:139, src/app/main/ui/ds/product/loader.cljs:85, src/app/main/ui/exports/files.cljs:59, src/app/main/ui/nitrate/entry.cljs:26, src/app/main/ui/static.cljs:608, src/app/main/ui/viewer.cljs:641, src/app/main/ui/workspace/sidebar/assets/file_library.cljs:247, src/app/main/ui/workspace.cljs:131, src/app/main/ui.cljs:71, src/app/main/ui.cljs:109, src/app/main/ui.cljs:128 +#: src/app/main/ui/auth/verify_token.cljs:125, src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:146, src/app/main/ui/dashboard/import.cljs:262, src/app/main/ui/dashboard/placeholder.cljs:139, src/app/main/ui/ds/product/loader.cljs:85, src/app/main/ui/exports/files.cljs:59, src/app/main/ui/nitrate/entry.cljs:26, src/app/main/ui/static.cljs:608, src/app/main/ui/viewer.cljs:641, src/app/main/ui/workspace/sidebar/assets/file_library.cljs:247, src/app/main/ui/workspace.cljs:131, src/app/main/ui.cljs:71, src/app/main/ui.cljs:109, src/app/main/ui.cljs:128 msgid "labels.loading" msgstr "Loading…" -#: src/app/main/ui/workspace/sidebar/versions.cljs:246 +#: src/app/main/ui/workspace/sidebar/versions.cljs:252 msgid "labels.lock" msgstr "Lock" @@ -3147,7 +3140,7 @@ msgstr "Log in or sign up" msgid "labels.login" msgstr "Login" -#: src/app/main/ui/dashboard/sidebar.cljs:1400 +#: src/app/main/ui/dashboard/sidebar.cljs:1405 msgid "labels.logout" msgstr "Logout" @@ -3175,7 +3168,7 @@ msgstr "Mixed" msgid "labels.new-password" msgstr "New password" -#: src/app/main/ui/dashboard/templates.cljs:299, src/app/main/ui/onboarding/questions.cljs:53, src/app/main/ui/viewer.cljs:112, src/app/main/ui/workspace/sidebar/layers.cljs:598 +#: src/app/main/ui/dashboard/templates.cljs:297, src/app/main/ui/onboarding/questions.cljs:53, src/app/main/ui/viewer.cljs:112, src/app/main/ui/workspace/sidebar/layers.cljs:598 msgid "labels.next" msgstr "Next" @@ -3210,7 +3203,7 @@ msgstr "This page might not exist or you don’t have permissions to access to i msgid "labels.not-found.main-message" msgstr "Oops!" -#: src/app/main/ui/settings/sidebar.cljs:102 +#: src/app/main/ui/settings/sidebar.cljs:101 msgid "labels.notifications" msgstr "Notifications" @@ -3245,7 +3238,7 @@ msgstr "Old password" msgid "labels.only-yours" msgstr "Only yours" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:705 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:702 msgid "labels.open" msgstr "Open" @@ -3257,11 +3250,11 @@ msgstr "Options" msgid "labels.or" msgstr "or" -#: src/app/main/ui/onboarding/questions.cljs:130, src/app/main/ui/onboarding/questions.cljs:202, src/app/main/ui/onboarding/questions.cljs:284, src/app/main/ui/onboarding/questions.cljs:357 +#: src/app/main/ui/onboarding/questions.cljs:130, src/app/main/ui/onboarding/questions.cljs:202, src/app/main/ui/onboarding/questions.cljs:314, src/app/main/ui/workspace/colorpicker/libraries.cljs:127 msgid "labels.other" msgstr "Other (specify)" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:165, src/app/main/ui/onboarding/questions.cljs:254, src/app/main/ui/onboarding/questions.cljs:323 +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:165, src/app/main/ui/onboarding/questions.cljs:280 msgid "labels.other-short" msgstr "Other" @@ -3269,7 +3262,7 @@ msgstr "Other" msgid "labels.owner" msgstr "Owner" -#: src/app/main/ui/settings/sidebar.cljs:97 +#: src/app/main/ui/settings/sidebar.cljs:96 msgid "labels.password" msgstr "Password" @@ -3305,7 +3298,7 @@ msgstr "Product or UX design" msgid "labels.product-management" msgstr "Product Management" -#: src/app/main/ui/settings/profile.cljs:148, src/app/main/ui/settings/sidebar.cljs:92 +#: src/app/main/ui/settings/profile.cljs:148, src/app/main/ui/settings/sidebar.cljs:91 msgid "labels.profile" msgstr "Profile" @@ -3313,7 +3306,7 @@ msgstr "Profile" msgid "labels.projects" msgstr "Projects" -#: src/app/main/ui/dashboard/deleted.cljs:207 +#: src/app/main/ui/dashboard/deleted.cljs:209 msgid "labels.recent" msgstr "Recent" @@ -3325,7 +3318,7 @@ msgstr "Reference" msgid "labels.refresh" msgstr "Refresh" -#: src/app/main/ui/settings/sidebar.cljs:129, src/app/main/ui/workspace/main_menu.cljs:177 +#: src/app/main/ui/settings/sidebar.cljs:128, src/app/main/ui/workspace/main_menu.cljs:177 msgid "labels.release-notes" msgstr "Release notes" @@ -3346,7 +3339,7 @@ msgstr "Remove" msgid "labels.remove-member" msgstr "Remove member" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/dashboard/project_menu.cljs:88, src/app/main/ui/dashboard/sidebar.cljs:564, src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/versions.cljs:223, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:76, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:101, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:63 +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/dashboard/project_menu.cljs:88, src/app/main/ui/dashboard/sidebar.cljs:564, src/app/main/ui/workspace/sidebar/assets/groups.cljs:186, src/app/main/ui/workspace/sidebar/versions.cljs:229, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:76, src/app/main/ui/workspace/tokens/management/node_context_menu.cljs:101, src/app/main/ui/workspace/tokens/sets/context_menu.cljs:63 msgid "labels.rename" msgstr "Rename" @@ -3382,7 +3375,7 @@ msgstr "Resend" msgid "labels.resend-invitation" msgstr "Resend invitation" -#: src/app/main/data/workspace/versions.cljs:235, src/app/main/data/workspace/versions.cljs:308, src/app/main/ui/workspace/sidebar/versions.cljs:233 +#: src/app/main/data/workspace/versions.cljs:246, src/app/main/data/workspace/versions.cljs:319, src/app/main/ui/workspace/sidebar/versions.cljs:239 msgid "labels.restore" msgstr "Restore" @@ -3394,7 +3387,7 @@ msgstr "Retry" msgid "labels.role" msgstr "Role" -#: src/app/main/ui/dashboard/fonts.cljs:437, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:204, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:368, src/app/main/ui/workspace/tokens/settings/menu.cljs:109 +#: src/app/main/ui/dashboard/fonts.cljs:435, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:204, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:363, src/app/main/ui/workspace/tokens/settings/menu.cljs:109 msgid "labels.save" msgstr "Save" @@ -3402,11 +3395,11 @@ msgstr "Save" msgid "labels.search" msgstr "Search" -#: src/app/main/ui/dashboard/fonts.cljs:477 +#: src/app/main/ui/dashboard/fonts.cljs:475 msgid "labels.search-font" msgstr "Search font" -#: src/app/main/ui/onboarding/questions.cljs:83, src/app/main/ui/onboarding/questions.cljs:229, src/app/main/ui/onboarding/questions.cljs:239 +#: src/app/main/ui/onboarding/questions.cljs:83, src/app/main/ui/onboarding/questions.cljs:218 msgid "labels.select-option" msgstr "Select option" @@ -3430,7 +3423,7 @@ msgstr "Service Unavailable" msgid "labels.sets" msgstr "Sets" -#: src/app/main/ui/dashboard/sidebar.cljs:557, src/app/main/ui/dashboard/team.cljs:114, src/app/main/ui/dashboard/team.cljs:128, src/app/main/ui/settings/options.cljs:129, src/app/main/ui/settings/sidebar.cljs:108 +#: src/app/main/ui/dashboard/sidebar.cljs:557, src/app/main/ui/dashboard/team.cljs:114, src/app/main/ui/dashboard/team.cljs:128, src/app/main/ui/settings/options.cljs:128, src/app/main/ui/settings/sidebar.cljs:107 msgid "labels.settings" msgstr "Settings" @@ -3502,7 +3495,7 @@ msgstr "Styles" msgid "labels.svg" msgstr "SVG" -#: src/app/main/data/workspace/mcp.cljs:190, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:348 +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:348 msgid "labels.switch" msgstr "Switch" @@ -3532,11 +3525,11 @@ msgstr "Tutorials" msgid "labels.typography" msgstr "Typography" -#: src/app/main/data/workspace/tokens/errors.cljs:136, src/app/main/data/workspace/tokens/errors.cljs:163, src/app/main/data/workspace/tokens/errors.cljs:175 +#: src/app/main/data/workspace/tokens/errors.cljs:131, src/app/main/data/workspace/tokens/errors.cljs:158, src/app/main/data/workspace/tokens/errors.cljs:170 msgid "labels.unknown-error" msgstr "Unknown error" -#: src/app/main/ui/workspace/sidebar/versions.cljs:240 +#: src/app/main/ui/workspace/sidebar/versions.cljs:246 msgid "labels.unlock" msgstr "Unlock" @@ -3564,7 +3557,7 @@ msgstr "Upload custom fonts" msgid "labels.uploading" msgstr "Uploading…" -#: src/app/main/ui/dashboard/import.cljs:643 +#: src/app/main/ui/dashboard/import.cljs:648 msgid "labels.uploading-file" msgstr "Uploading file…" @@ -3576,11 +3569,11 @@ msgstr "Variant" msgid "labels.version-notes" msgstr "Version %s notes" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:297 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:298 msgid "labels.view-only" msgstr "View only" -#: src/app/main/ui/dashboard/team.cljs:146, src/app/main/ui/dashboard/team.cljs:396, src/app/main/ui/dashboard/team.cljs:647, src/app/main/ui/dashboard/team.cljs:683, src/app/main/ui/onboarding/team_choice.cljs:56 +#: src/app/main/ui/dashboard/team.cljs:146, src/app/main/ui/dashboard/team.cljs:396, src/app/main/ui/dashboard/team.cljs:647, src/app/main/ui/dashboard/team.cljs:683, src/app/main/ui/onboarding/team_choice.cljs:55 msgid "labels.viewer" msgstr "Viewer" @@ -3607,7 +3600,7 @@ msgstr "Write new comment" msgid "labels.you" msgstr "(you)" -#: src/app/main/ui/dashboard/sidebar.cljs:1353 +#: src/app/main/ui/dashboard/sidebar.cljs:1358 msgid "labels.your-account" msgstr "Your account" @@ -3700,11 +3693,11 @@ msgstr "Plugins Support" msgid "media.choose-image" msgstr "Choose image" -#: src/app/main/ui/workspace/colorpicker.cljs:271 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs:106, src/app/main/ui/workspace/colorpicker.cljs:271 msgid "media.gradient" msgstr "Gradient" -#: src/app/main/data/workspace/media.cljs:291, src/app/main/ui/components/color_bullet.cljs:42, src/app/main/ui/components/color_bullet.cljs:55, src/app/main/ui/ds/utilities/swatch.cljs:45, src/app/main/ui/ds/utilities/swatch.cljs:58, src/app/main/ui/inspect/attributes/common.cljs:43, src/app/main/ui/inspect/styles/rows/color_properties_row.cljs:67, src/app/main/ui/workspace/colorpicker.cljs:273, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:418 +#: src/app/main/data/workspace/media.cljs:291, src/app/main/ui/components/color_bullet.cljs:42, src/app/main/ui/components/color_bullet.cljs:55, src/app/main/ui/ds/utilities/swatch.cljs:52, src/app/main/ui/ds/utilities/swatch.cljs:68, src/app/main/ui/inspect/attributes/common.cljs:43, src/app/main/ui/inspect/styles/rows/color_properties_row.cljs:67, src/app/main/ui/workspace/colorpicker/libraries.cljs:111, src/app/main/ui/workspace/colorpicker.cljs:273, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:418 msgid "media.image" msgstr "Image" @@ -3755,17 +3748,17 @@ msgstr "" msgid "modals.add-shared-confirm.message" msgstr "Add “%s” as Shared Library" -#: src/app/main/data/nitrate.cljs:195 +#: src/app/main/data/nitrate.cljs:199 msgid "modals.before-leave-org.message" msgstr "" "You are the only member of some of the teams. Those teams will be deleted " "along with its projects and files." -#: src/app/main/data/nitrate.cljs:194, src/app/main/ui/dashboard/change_owner.cljs:151 +#: src/app/main/data/nitrate.cljs:198, src/app/main/ui/dashboard/change_owner.cljs:151 msgid "modals.before-leave-org.title" msgstr "BEFORE YOU LEAVE THE ORGANIZATION" -#: src/app/main/data/nitrate.cljs:198 +#: src/app/main/data/nitrate.cljs:202 msgid "modals.before-leave-org.warning" msgstr "Any team where you’re the only member will be deleted." @@ -3809,11 +3802,11 @@ msgstr "Payload URL" msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/delete_account.cljs:104 +#: src/app/main/ui/settings/delete_account.cljs:105 msgid "modals.delete-account.cancel" msgstr "Cancel and keep my account" -#: src/app/main/ui/settings/delete_account.cljs:109 +#: src/app/main/ui/settings/delete_account.cljs:110 msgid "modals.delete-account.confirm" msgstr "Yes, delete my account" @@ -3830,15 +3823,15 @@ msgstr "" "will be deleted immediately. You will also lose access to your current " "projects and files." -#: src/app/main/ui/settings/delete_account.cljs:82 +#: src/app/main/ui/settings/delete_account.cljs:83 msgid "modals.delete-account.owned-orgs.list-title" msgstr "Organizations that will be deleted" -#: src/app/main/ui/settings/delete_account.cljs:97 +#: src/app/main/ui/settings/delete_account.cljs:98 msgid "modals.delete-account.owned-orgs.members-count" msgstr "%s members" -#: src/app/main/ui/settings/delete_account.cljs:95 +#: src/app/main/ui/settings/delete_account.cljs:96 msgid "modals.delete-account.owned-orgs.teams-count" msgstr "%s teams" @@ -3902,23 +3895,23 @@ msgstr "Are you sure you want to delete %s files?" msgid "modals.delete-file-multi-confirm.title" msgstr "Deleting %s files" -#: src/app/main/ui/dashboard/fonts.cljs:398 +#: src/app/main/ui/dashboard/fonts.cljs:396 msgid "modals.delete-font-variant.message" msgstr "" "Are you sure you want to delete this font style? It will not load if is " "used in a file." -#: src/app/main/ui/dashboard/fonts.cljs:397 +#: src/app/main/ui/dashboard/fonts.cljs:395 msgid "modals.delete-font-variant.title" msgstr "Deleting font style" -#: src/app/main/ui/dashboard/fonts.cljs:364 +#: src/app/main/ui/dashboard/fonts.cljs:362 msgid "modals.delete-font.message" msgstr "" "Are you sure you want to delete this font? It will not load if is used in a " "file." -#: src/app/main/ui/dashboard/fonts.cljs:363 +#: src/app/main/ui/dashboard/fonts.cljs:361 msgid "modals.delete-font.title" msgstr "Deleting font" @@ -3926,11 +3919,11 @@ msgstr "Deleting font" msgid "modals.delete-org-team-confirm.message" msgstr "Are you sure you want to delete this team that is part of %s org?" -#: src/app/main/ui/workspace/context_menu.cljs:707, src/app/main/ui/workspace/sidebar/sitemap.cljs:108 +#: src/app/main/ui/workspace/context_menu.cljs:707, src/app/main/ui/workspace/sidebar/sitemap.cljs:109 msgid "modals.delete-page.body" msgstr "Are you sure you want to delete this page?" -#: src/app/main/ui/workspace/context_menu.cljs:706, src/app/main/ui/workspace/sidebar/sitemap.cljs:107, src/app/main/ui/workspace/sidebar/sitemap.cljs:224 +#: src/app/main/ui/workspace/context_menu.cljs:706, src/app/main/ui/workspace/sidebar/sitemap.cljs:108, src/app/main/ui/workspace/sidebar/sitemap.cljs:225 msgid "modals.delete-page.title" msgstr "Delete page" @@ -4048,7 +4041,7 @@ msgstr "Import tokens from library?" msgid "modals.invite-member-confirm.accept" msgstr "Send invitation" -#: src/app/main/ui/dashboard/team.cljs:269, src/app/main/ui/onboarding/team_choice.cljs:202 +#: src/app/main/ui/dashboard/team.cljs:269, src/app/main/ui/onboarding/team_choice.cljs:200 msgid "modals.invite-member.emails" msgstr "Emails, comma separated" @@ -4171,17 +4164,17 @@ msgstr "" "Also, you are the owner of some organization's teams. Please promote " "another member to become an owner." -#: src/app/main/data/nitrate.cljs:196, src/app/main/data/nitrate.cljs:205 +#: src/app/main/data/nitrate.cljs:200, src/app/main/data/nitrate.cljs:209 msgid "modals.leave-org-confirm.accept" msgstr "Leave organization" -#: src/app/main/data/nitrate.cljs:204 +#: src/app/main/data/nitrate.cljs:208 msgid "modals.leave-org-confirm.message" msgstr "" "You will permanently lose access to all teams, projects, and files within " "it." -#: src/app/main/data/nitrate.cljs:203 +#: src/app/main/data/nitrate.cljs:207 msgid "modals.leave-org-confirm.title" msgstr "Leaving %s organization?" @@ -4256,21 +4249,21 @@ msgstr "" msgid "modals.remove-shared-confirm.message" msgstr "Remove “%s” as Shared Library" -#: src/app/main/data/nitrate.cljs:252 +#: src/app/main/data/nitrate.cljs:256 msgid "modals.remove-team-org.accept" msgstr "Remove from organization" -#: src/app/main/data/nitrate.cljs:250 +#: src/app/main/data/nitrate.cljs:254 msgid "modals.remove-team-org.info" msgstr "" "Projects and files will remain available to team members, but the " "organization's settings will no longer apply." -#: src/app/main/data/nitrate.cljs:249 +#: src/app/main/data/nitrate.cljs:253 msgid "modals.remove-team-org.text" msgstr "Are you sure you want to remove the '%s' team from the '%s' organization?" -#: src/app/main/data/nitrate.cljs:248 +#: src/app/main/data/nitrate.cljs:252 msgid "modals.remove-team-org.title" msgstr "REMOVE TEAM FROM THE ORGANIZATION" @@ -4338,7 +4331,7 @@ msgstr "Invalid code." msgid "nitrate.activation-success.active-until" msgstr "Your plan is active until %s." -#: src/app/main/ui/dashboard/subscription.cljs:150, src/app/main/ui/nitrate/nitrate_activation_success_modal.cljs:68 +#: src/app/main/ui/dashboard/subscription.cljs:195, src/app/main/ui/nitrate/nitrate_activation_success_modal.cljs:68 msgid "nitrate.activation-success.create-org" msgstr "Create organization" @@ -4448,7 +4441,7 @@ msgstr "Full open-source freedom, with the governance your org needs" msgid "nitrate.form.enterprise-intro" msgstr "Everything your teams need to work securely at scale:" -#: src/app/main/ui/nitrate/nitrate_form.cljs:66, src/app/main/ui/settings/subscription.cljs:768 +#: src/app/main/ui/nitrate/nitrate_form.cljs:66, src/app/main/ui/settings/subscription.cljs:767 msgid "nitrate.form.enterprise.price" msgstr "per member per month" @@ -4468,7 +4461,7 @@ msgstr "Get started with Enterprise" msgid "nitrate.form.title" msgstr "Unlock Enterprise features" -#: src/app/main/ui/dashboard/subscription.cljs:164, src/app/main/ui/nitrate/nitrate_form.cljs:75 +#: src/app/main/ui/dashboard/subscription.cljs:209, src/app/main/ui/nitrate/nitrate_form.cljs:75 msgid "nitrate.form.try-free" msgstr "Try it free for 14 days" @@ -4477,7 +4470,7 @@ msgstr "Try it free for 14 days" msgid "nitrate.form.upgrade" msgstr "" -#: src/app/main/ui/settings/subscription.cljs:576 +#: src/app/main/ui/settings/subscription.cljs:575 msgid "nitrate.subscription.active-until" msgstr "Active until %s" @@ -4485,11 +4478,11 @@ msgstr "Active until %s" msgid "nitrate.subscription.renew-success" msgstr "Your Nitrate subscription has been renewed." -#: src/app/main/ui/settings/subscription.cljs:585 +#: src/app/main/ui/settings/subscription.cljs:584 msgid "nitrate.subscription.settings.manual-cancel" msgstr "Cancel subscription" -#: src/app/main/ui/settings/subscription.cljs:105 +#: src/app/main/ui/settings/subscription.cljs:103 msgid "nitrate.subscription.settings.renew-with-code" msgstr "Renew with activation code" @@ -4618,6 +4611,7 @@ msgid "notifications.invitation-link-copied" msgstr "Invitation link copied" #: src/app/main/data/workspace/mcp.cljs:185 +#, unused msgid "notifications.mcp.active-in-another-tab" msgstr "MCP is active in another tab. Switch here?" @@ -4720,7 +4714,7 @@ msgstr "" msgid "onboarding-v2.welcome.desc3.title" msgstr "Contributing guide" -#: src/app/main/ui/onboarding/team_choice.cljs:240 +#: src/app/main/ui/onboarding/team_choice.cljs:237 msgid "onboarding-v2.welcome.title" msgstr "Welcome to Penpot!" @@ -4729,11 +4723,11 @@ msgstr "Welcome to Penpot!" msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continue creating team" -#: src/app/main/ui/onboarding/team_choice.cljs:229 +#: src/app/main/ui/onboarding/team_choice.cljs:227 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Continue without team" -#: src/app/main/ui/onboarding/team_choice.cljs:213 +#: src/app/main/ui/onboarding/team_choice.cljs:211 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Create team & invite" @@ -4741,19 +4735,19 @@ msgstr "Create team & invite" msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Create team and send invites" -#: src/app/main/ui/onboarding/team_choice.cljs:218 +#: src/app/main/ui/onboarding/team_choice.cljs:216 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "You'll be able to invite later" -#: src/app/main/ui/onboarding/team_choice.cljs:176 +#: src/app/main/ui/onboarding/team_choice.cljs:174 msgid "onboarding.choice.team-up.create-team-desc" msgstr "After naming your team, you will be able to invite people to join." -#: src/app/main/ui/onboarding/team_choice.cljs:184 +#: src/app/main/ui/onboarding/team_choice.cljs:182 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Enter the name of the team" -#: src/app/main/ui/onboarding/team_choice.cljs:214 +#: src/app/main/ui/onboarding/team_choice.cljs:212 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Create team" @@ -4761,25 +4755,25 @@ msgstr "Create team" msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Create team without inviting" -#: src/app/main/ui/dashboard/projects.cljs:94, src/app/main/ui/onboarding/team_choice.cljs:186 +#: src/app/main/ui/dashboard/projects.cljs:94, src/app/main/ui/onboarding/team_choice.cljs:184 msgid "onboarding.choice.team-up.invite-members" msgstr "Invite members" -#: src/app/main/ui/onboarding/team_choice.cljs:187 +#: src/app/main/ui/onboarding/team_choice.cljs:185 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Remember to include everyone. Developers, designers, managers... diversity " "adds up :)" -#: src/app/main/ui/dashboard/team.cljs:258, src/app/main/ui/onboarding/team_choice.cljs:193 +#: src/app/main/ui/dashboard/team.cljs:258, src/app/main/ui/onboarding/team_choice.cljs:191 msgid "onboarding.choice.team-up.roles" msgstr "Invite with the role:" -#: src/app/main/ui/onboarding/team_choice.cljs:222 +#: src/app/main/ui/onboarding/team_choice.cljs:220 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Start without a team" -#: src/app/main/ui/onboarding/team_choice.cljs:224 +#: src/app/main/ui/onboarding/team_choice.cljs:222 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "You will be able to create a team later." @@ -4809,18 +4803,22 @@ msgid "onboarding.questions.lets-get-started" msgstr "Let's get started!" #: src/app/main/ui/onboarding/questions.cljs:248 +#, unused msgid "onboarding.questions.reasons.alternative" msgstr "Looking for an alternative to Figma, XD, etc" #: src/app/main/ui/onboarding/questions.cljs:242 +#, unused msgid "onboarding.questions.reasons.exploring" msgstr "Just exploring" #: src/app/main/ui/onboarding/questions.cljs:245 +#, unused msgid "onboarding.questions.reasons.fit" msgstr "Reviewing whether Penpot is a good fit for my team" #: src/app/main/ui/onboarding/questions.cljs:251 +#, unused msgid "onboarding.questions.reasons.testing" msgstr "Testing before self-hosting" @@ -4839,23 +4837,23 @@ msgstr "Search Engine (Google, Yahoo, Bing)" msgid "onboarding.questions.referer.social" msgstr "Social Media (X, Linkedin, FB, etc)" -#: src/app/main/ui/onboarding/questions.cljs:321 +#: src/app/main/ui/onboarding/questions.cljs:278 msgid "onboarding.questions.start-with.code" msgstr "Generating real code from designs" -#: src/app/main/ui/onboarding/questions.cljs:319 +#: src/app/main/ui/onboarding/questions.cljs:276 msgid "onboarding.questions.start-with.ds" msgstr "Creating Design Systems" -#: src/app/main/ui/onboarding/questions.cljs:317 +#: src/app/main/ui/onboarding/questions.cljs:274 msgid "onboarding.questions.start-with.prototyping" msgstr "Prototyping" -#: src/app/main/ui/onboarding/questions.cljs:313 +#: src/app/main/ui/onboarding/questions.cljs:270 msgid "onboarding.questions.start-with.ui" msgstr "Design the UI/UX of an app" -#: src/app/main/ui/onboarding/questions.cljs:315 +#: src/app/main/ui/onboarding/questions.cljs:272 msgid "onboarding.questions.start-with.wireframing" msgstr "Wireframing" @@ -4864,6 +4862,7 @@ msgid "onboarding.questions.step1.question1" msgstr "What will you be using Penpot for?" #: src/app/main/ui/onboarding/questions.cljs:272 +#, unused msgid "onboarding.questions.step1.question2" msgstr "What brings you to Penpot today?" @@ -4892,14 +4891,15 @@ msgid "onboarding.questions.step3.question2" msgstr "What's your role?" #: src/app/main/ui/onboarding/questions.cljs:289 +#, unused msgid "onboarding.questions.step3.question3" msgstr "What's the size of your company?" -#: src/app/main/ui/onboarding/questions.cljs:269 +#: src/app/main/ui/onboarding/questions.cljs:244 msgid "onboarding.questions.step3.title" msgstr "What is your company size?" -#: src/app/main/ui/onboarding/questions.cljs:344 +#: src/app/main/ui/onboarding/questions.cljs:301 msgid "onboarding.questions.step4.title" msgstr "Where would you like to get started?" @@ -4908,45 +4908,57 @@ msgstr "Where would you like to get started?" msgid "onboarding.questions.step5.title" msgstr "How did you hear about Penpot?" -msgid "onboarding.questions.team-size.just-me" -msgstr "Just me" - -msgid "onboarding.questions.team-size.2-100" -msgstr "2 - 100" - -msgid "onboarding.questions.team-size.101-500" -msgstr "101 - 500" - -msgid "onboarding.questions.team-size.501-1000" -msgstr "501 - 1,000" - +#: src/app/main/ui/onboarding/questions.cljs:229 msgid "onboarding.questions.team-size.1001-5000" msgstr "1,001 - 5,000" -msgid "onboarding.questions.team-size.more-than-5001" -msgstr "5,001+" +#: src/app/main/ui/onboarding/questions.cljs:225 +msgid "onboarding.questions.team-size.101-500" +msgstr "101 - 500" #: src/app/main/ui/onboarding/questions.cljs:233 +#, unused msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs:233 +#, unused msgid "onboarding.questions.team-size.2-10" msgstr "2-10" +#: src/app/main/ui/onboarding/questions.cljs:223 +msgid "onboarding.questions.team-size.2-100" +msgstr "2 - 100" + #: src/app/main/ui/onboarding/questions.cljs:231 +#, unused msgid "onboarding.questions.team-size.31-50" msgstr "31-50" +#: src/app/main/ui/onboarding/questions.cljs:227 +msgid "onboarding.questions.team-size.501-1000" +msgstr "501 - 1,000" + #: src/app/main/ui/onboarding/questions.cljs:234 +#, unused msgid "onboarding.questions.team-size.freelancer" msgstr "I'm a freelancer" +#: src/app/main/ui/onboarding/questions.cljs:221 +msgid "onboarding.questions.team-size.just-me" +msgstr "Just me" + #: src/app/main/ui/onboarding/questions.cljs:230 +#, unused msgid "onboarding.questions.team-size.more-than-50" msgstr "More than 50" +#: src/app/main/ui/onboarding/questions.cljs:231 +msgid "onboarding.questions.team-size.more-than-5001" +msgstr "5,001+" + #: src/app/main/ui/onboarding/questions.cljs:235 +#, unused msgid "onboarding.questions.team-size.personal-project" msgstr "I’m working in a personal project" @@ -4962,37 +4974,37 @@ msgstr "Personal" msgid "onboarding.questions.use.work" msgstr "Work" -#: src/app/main/ui/onboarding/team_choice.cljs:174 +#: src/app/main/ui/onboarding/team_choice.cljs:172 msgid "onboarding.team-modal.create-team" msgstr "Create a team" -#: src/app/main/ui/onboarding/team_choice.cljs:31 +#: src/app/main/ui/onboarding/team_choice.cljs:30 msgid "onboarding.team-modal.create-team-desc" msgstr "" "A team allows you to collaborate with other Penpot users working in the " "same files and projects." -#: src/app/main/ui/onboarding/team_choice.cljs:36 +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Unlimited files and projects" -#: src/app/main/ui/onboarding/team_choice.cljs:40 +#: src/app/main/ui/onboarding/team_choice.cljs:39 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer edition" -#: src/app/main/ui/onboarding/team_choice.cljs:44 +#: src/app/main/ui/onboarding/team_choice.cljs:43 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Roles management" -#: src/app/main/ui/onboarding/team_choice.cljs:48 +#: src/app/main/ui/onboarding/team_choice.cljs:47 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Unlimited members" -#: src/app/main/ui/onboarding/team_choice.cljs:52 +#: src/app/main/ui/onboarding/team_choice.cljs:51 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% free!" -#: src/app/main/ui/onboarding/team_choice.cljs:29 +#: src/app/main/ui/onboarding/team_choice.cljs:28 msgid "onboarding.team-modal.team-definition" msgstr "What's a team?" @@ -5020,11 +5032,11 @@ msgstr "Field %s is invalid: %s" msgid "profile.recovery.go-to-login" msgstr "Go to login" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:701, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:389 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:698, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:389 msgid "settings.detach" msgstr "Detach" -#: src/app/main/ui/inspect/exports.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:192, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:222, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:243, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:261, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:278, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:297, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:299, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:342, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:496, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1058, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1298, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:222, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:221, src/app/main/ui/workspace/sidebar/options/menus/input_wrapper_tokens.cljs:25, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:244, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:388, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:425, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:435, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:519, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:553, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:586, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:620, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:755, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:793, src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:80, src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:502, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:525, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:536, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:564, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:577, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:586, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:597, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:618, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:629, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:155, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:225, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:403, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:422, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:438, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:296 +#: src/app/main/ui/inspect/exports.cljs:169, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:192, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:222, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:243, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:261, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:278, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:297, src/app/main/ui/workspace/sidebar/options/menus/border_radius.cljs:299, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:342, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:496, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1058, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:1298, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:222, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:221, src/app/main/ui/workspace/sidebar/options/menus/input_wrapper_tokens.cljs:25, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:244, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:388, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:425, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:435, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:519, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:553, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:586, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:620, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:755, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:793, src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:80, src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:502, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:525, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:536, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:564, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:577, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:586, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:597, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:618, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:629, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:155, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:225, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:347, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:401, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:420, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:438, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:296 msgid "settings.multiple" msgstr "Mixed" @@ -5070,7 +5082,7 @@ msgstr "Generic" msgid "shortcut-subsection.general-viewer" msgstr "Generic" -#: src/app/main/ui/workspace/main_menu.cljs:975, src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 +#: src/app/main/ui/workspace/main_menu.cljs:983, src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.main-menu" msgstr "Main menu" @@ -5697,76 +5709,92 @@ msgstr "Zoom lense increase" msgid "shortcuts.zoom-selected" msgstr "Zoom to selected" -#: src/app/main/ui/dashboard/subscription.cljs:146 +#: src/app/main/ui/dashboard/subscription.cljs:191 msgid "subscription.banner.create-org-info" msgstr "" "Create an organization and see exactly how Enterprise works. Set rules, " "manage your teams and discover a new level of control over your design " "workflow." -#: src/app/main/ui/dashboard/subscription.cljs:144 +#: src/app/main/ui/dashboard/subscription.cljs:189 msgid "subscription.banner.see-enterprise" msgstr "See Enterprise in action" -#: src/app/main/ui/dashboard/subscription.cljs:188 +#: src/app/main/ui/dashboard/subscription.cljs:253 msgid "subscription.current-plan.enterprise" msgstr "Enterprise" -#: src/app/main/ui/dashboard/subscription.cljs:187 +#: src/app/main/ui/dashboard/subscription.cljs:252 msgid "subscription.current-plan.nitrate" msgstr "Enterprise" -#: src/app/main/ui/dashboard/subscription.cljs:186 +#: src/app/main/ui/dashboard/subscription.cljs:251 msgid "subscription.current-plan.nitrate-trial" msgstr "Enterprise Trial" -#: src/app/main/ui/dashboard/subscription.cljs:181 +#: src/app/main/ui/dashboard/subscription.cljs:246 msgid "subscription.current-plan.professional" msgstr "Professional" -#: src/app/main/ui/dashboard/subscription.cljs:176 +#: src/app/main/ui/dashboard/subscription.cljs:241 msgid "subscription.current-plan.title" msgstr "Your subscription" -#: src/app/main/ui/dashboard/subscription.cljs:184 +#: src/app/main/ui/dashboard/subscription.cljs:249 msgid "subscription.current-plan.unlimited" msgstr "Unlimited" -#: src/app/main/ui/dashboard/subscription.cljs:183 +#: src/app/main/ui/dashboard/subscription.cljs:248 msgid "subscription.current-plan.unlimited-trial" msgstr "Unlimited Trial" -#: src/app/main/ui/dashboard/subscription.cljs:156 +#: src/app/main/ui/dashboard/subscription.cljs:229 +msgid "subscription.dashboard.banner.renew" +msgstr "Renew" + +#: src/app/main/ui/dashboard/subscription.cljs:216 +msgid "subscription.dashboard.banner.renew-subscription" +msgstr "Renew your subscription" + +#: src/app/main/ui/dashboard/subscription.cljs:222 +msgid "subscription.dashboard.banner.subscription-expire-days" +msgstr "Your Enterprise subscription expires in %s days (%s)" + +#: src/app/main/ui/dashboard/subscription.cljs:220 +msgid "subscription.dashboard.banner.subscription-expired" +msgstr "Your Enterprise subscription has expired. (%s)" + +#: src/app/main/ui/dashboard/subscription.cljs:201 msgid "subscription.dashboard.banner.unlock-features" msgstr "Unlock Enterprise features" -#: src/app/main/ui/dashboard/subscription.cljs:158 +#: src/app/main/ui/dashboard/subscription.cljs:203 msgid "subscription.dashboard.banner.unlock-features-description" msgstr "" "Set fine-grained permissions and keep your design operations secure, " "without compromising the open-source freedom your team already loves." -#: src/app/main/ui/dashboard/subscription.cljs:163 +#: src/app/main/ui/dashboard/subscription.cljs:208 msgid "subscription.dashboard.banner.upgrade-nitrate" msgstr "Get started with Enterprise" -#: src/app/main/ui/dashboard/subscription.cljs:114, src/app/main/ui/dashboard/subscription.cljs:234 +#: src/app/main/ui/dashboard/subscription.cljs:118, src/app/main/ui/dashboard/subscription.cljs:299 msgid "subscription.dashboard.power-up.enterprise-plan" msgstr "Enterprise plan" -#: src/app/main/ui/dashboard/subscription.cljs:109 +#: src/app/main/ui/dashboard/subscription.cljs:113 msgid "subscription.dashboard.power-up.enterprise-trial.top-title" msgstr "Enterprise plan (trial)" -#: src/app/main/ui/dashboard/subscription.cljs:84 +#: src/app/main/ui/dashboard/subscription.cljs:88 msgid "subscription.dashboard.power-up.professional.bottom-button" msgstr "Power up!" -#: src/app/main/ui/dashboard/subscription.cljs:83 +#: src/app/main/ui/dashboard/subscription.cljs:87 msgid "subscription.dashboard.power-up.professional.bottom-description" msgstr "Get extra storage, file recovery and more for your teams." -#: src/app/main/ui/dashboard/subscription.cljs:82 +#: src/app/main/ui/dashboard/subscription.cljs:86 msgid "subscription.dashboard.power-up.professional.top-title" msgstr "Professional plan" @@ -5775,20 +5803,20 @@ msgstr "Professional plan" msgid "subscription.dashboard.power-up.subscribe" msgstr "Subscribe" -#: src/app/main/ui/dashboard/subscription.cljs:94 +#: src/app/main/ui/dashboard/subscription.cljs:98 #, markdown msgid "subscription.dashboard.power-up.trial.bottom-description" msgstr "Enjoying your trial? Unlock full access forever.[Subscribe|target:self](%s)" -#: src/app/main/ui/dashboard/subscription.cljs:93 +#: src/app/main/ui/dashboard/subscription.cljs:97 msgid "subscription.dashboard.power-up.trial.top-title" msgstr "Unlimited plan (trial)" -#: src/app/main/ui/dashboard/subscription.cljs:100, src/app/main/ui/dashboard/subscription.cljs:233 +#: src/app/main/ui/dashboard/subscription.cljs:104, src/app/main/ui/dashboard/subscription.cljs:298 msgid "subscription.dashboard.power-up.unlimited-plan" msgstr "Unlimited plan" -#: src/app/main/ui/dashboard/subscription.cljs:101 +#: src/app/main/ui/dashboard/subscription.cljs:105 #, markdown msgid "subscription.dashboard.power-up.unlimited.bottom-text" msgstr "" @@ -5806,107 +5834,87 @@ msgstr "Take a look" msgid "subscription.dashboard.power-up.unlimited.top-description" msgstr "Extra editors, storage and autosaved version, file backup and more." -#: src/app/main/ui/dashboard/subscription.cljs:81, src/app/main/ui/dashboard/subscription.cljs:92, src/app/main/ui/dashboard/subscription.cljs:99, src/app/main/ui/dashboard/subscription.cljs:108, src/app/main/ui/dashboard/subscription.cljs:113 +#: src/app/main/ui/dashboard/subscription.cljs:85, src/app/main/ui/dashboard/subscription.cljs:96, src/app/main/ui/dashboard/subscription.cljs:103, src/app/main/ui/dashboard/subscription.cljs:112, src/app/main/ui/dashboard/subscription.cljs:117 msgid "subscription.dashboard.power-up.your-subscription" msgstr "Your subscription:" -#: src/app/main/ui/dashboard/subscription.cljs:268 +#: src/app/main/ui/dashboard/subscription.cljs:333 msgid "subscription.dashboard.professional-dashboard-cta-title" msgstr "" "You have %s editors across your owned teams, while your professional plan " "covers up to 8." -#: src/app/main/ui/dashboard/subscription.cljs:276 +#: src/app/main/ui/dashboard/subscription.cljs:341 #, markdown msgid "subscription.dashboard.professional-dashboard-cta-upgrade-owner" msgstr "" "Please upgrade now to Unlimited or Enterprise to unlock more editors, " "storage and file recovery. [Subscribe now.|target:self](%s)" -#: src/app/main/ui/dashboard/subscription.cljs:209 +#: src/app/main/ui/dashboard/subscription.cljs:274 msgid "subscription.dashboard.team-plan" msgstr "Team plan" -#: src/app/main/ui/dashboard/subscription.cljs:271 +#: src/app/main/ui/dashboard/subscription.cljs:336 msgid "subscription.dashboard.unlimited-dashboard-cta-title" msgstr "" "Your team keeps growing! Your Unlimited plan covers up to %s editors, but " "you now have %s." -#: src/app/main/ui/dashboard/subscription.cljs:279 +#: src/app/main/ui/dashboard/subscription.cljs:344 #, markdown msgid "subscription.dashboard.unlimited-dashboard-cta-upgrade-owner" msgstr "" "Please upgrade now to match your current editor count. [Subscribe " "now.|target:self](%s)" -#: src/app/main/ui/dashboard/subscription.cljs:256 +#: src/app/main/ui/dashboard/subscription.cljs:321 msgid "subscription.dashboard.unlimited-members-extra-editors-cta-text" msgstr "" "Only new editors across your owned teams count towards future billing. A " "flat $175/month still applies for 25+ editors." -#: src/app/main/ui/dashboard/subscription.cljs:252 +#: src/app/main/ui/dashboard/subscription.cljs:317 msgid "subscription.dashboard.unlimited-members-extra-editors-cta-title" msgstr "Inviting people while on the Unlimited plan" -#: src/app/main/ui/dashboard/sidebar.cljs:1325 +#: src/app/main/ui/dashboard/sidebar.cljs:1330 msgid "subscription.dashboard.upgrade-plan.power-up" msgstr "Power up" -msgid "subscription.dashboard.banner.unlock-features" -msgstr "Unlock Enterprise features" - -msgid "subscription.dashboard.banner.unlock-features-description" -msgstr "Set fine-grained permissions and keep your design operations secure, without compromising the open-source freedom your team already loves." - -msgid "subscription.dashboard.banner.renew-subscription" -msgstr "Renew your subscription" - -msgid "subscription.dashboard.banner.subscription-expire-days" -msgstr "Your Enterprise subscription expires in %s days (%s)" - -msgid "subscription.dashboard.banner.subscription-expired" -msgstr "Your Enterprise subscription has expired. (%s)" - -msgid "subscription.dashboard.banner.renew" -msgstr "Renew" - -msgid "subscription.dashboard.banner.upgrade-nitrate" -msgstr "Get started with Enterprise" - +#: src/app/main/ui/settings/subscription.cljs:408 msgid "subscription.error.nitrate.checkout-cancelled" msgstr "Payment was not completed. Try again whenever you're ready." -#: src/app/main/ui/settings/subscription.cljs:428 +#: src/app/main/ui/settings/subscription.cljs:427 msgid "subscription.error.nitrate.checkout-failed" msgstr "" "We couldn't start the checkout. Please try again. If the problem persists, " "contact us: support@penpot.app." -#: src/app/main/ui/settings/subscription.cljs:408 +#: src/app/main/ui/settings/subscription.cljs:407 msgid "subscription.error.nitrate.checkout-finish-failed" msgstr "" "We couldn’t confirm your subscription. Please check your subscription " "status on the Subscription page. You may try again if needed." -#: src/app/main/ui/settings/sidebar.cljs:115, src/app/main/ui/settings/subscription.cljs:506, src/app/main/ui/settings/subscription.cljs:566 +#: src/app/main/ui/settings/sidebar.cljs:114, src/app/main/ui/settings/subscription.cljs:505, src/app/main/ui/settings/subscription.cljs:565 msgid "subscription.labels" msgstr "Subscription" -#: src/app/main/ui/settings/subscription.cljs:104 +#: src/app/main/ui/settings/subscription.cljs:97 msgid "subscription.settings.activate-by-code" msgstr "Enter activation code" -#: src/app/main/ui/settings/subscription.cljs:613, src/app/main/ui/settings/subscription.cljs:637 +#: src/app/main/ui/settings/subscription.cljs:612, src/app/main/ui/settings/subscription.cljs:636 msgid "subscription.settings.add-payment-to-continue" msgstr "Add a payment method to continue after your trial" -#: src/app/main/ui/settings/subscription.cljs:607, src/app/main/ui/settings/subscription.cljs:694 +#: src/app/main/ui/settings/subscription.cljs:606, src/app/main/ui/settings/subscription.cljs:693 msgid "subscription.settings.benefits.all-professional-benefits" msgstr "All Professional plan benefits and:" -#: src/app/main/ui/settings/subscription.cljs:619, src/app/main/ui/settings/subscription.cljs:631, src/app/main/ui/settings/subscription.cljs:641, src/app/main/ui/settings/subscription.cljs:710, src/app/main/ui/settings/subscription.cljs:726 +#: src/app/main/ui/settings/subscription.cljs:618, src/app/main/ui/settings/subscription.cljs:630, src/app/main/ui/settings/subscription.cljs:640, src/app/main/ui/settings/subscription.cljs:709, src/app/main/ui/settings/subscription.cljs:725 msgid "subscription.settings.benefits.all-unlimited-benefits" msgstr "All Unlimited plan benefits and:" @@ -5914,144 +5922,144 @@ msgstr "All Unlimited plan benefits and:" msgid "subscription.settings.editors" msgstr "(x %s editors)" -#: src/app/main/ui/dashboard/subscription.cljs:217, src/app/main/ui/settings/subscription.cljs:117, src/app/main/ui/settings/subscription.cljs:561, src/app/main/ui/settings/subscription.cljs:639, src/app/main/ui/settings/subscription.cljs:706 +#: src/app/main/ui/dashboard/subscription.cljs:282, src/app/main/ui/settings/subscription.cljs:116, src/app/main/ui/settings/subscription.cljs:560, src/app/main/ui/settings/subscription.cljs:638, src/app/main/ui/settings/subscription.cljs:705 msgid "subscription.settings.enterprise" msgstr "Enterprise" -#: src/app/main/ui/settings/subscription.cljs:113, src/app/main/ui/settings/subscription.cljs:560, src/app/main/ui/settings/subscription.cljs:629 +#: src/app/main/ui/settings/subscription.cljs:112, src/app/main/ui/settings/subscription.cljs:559, src/app/main/ui/settings/subscription.cljs:628 msgid "subscription.settings.enterprise-trial" msgstr "Enterprise (trial)" -#: src/app/main/ui/settings/subscription.cljs:633, src/app/main/ui/settings/subscription.cljs:643, src/app/main/ui/settings/subscription.cljs:712 +#: src/app/main/ui/settings/subscription.cljs:632, src/app/main/ui/settings/subscription.cljs:642, src/app/main/ui/settings/subscription.cljs:711 msgid "subscription.settings.enterprise.autosave" msgstr "90-day autosave versions and file recovery" -#: src/app/main/ui/settings/subscription.cljs:634, src/app/main/ui/settings/subscription.cljs:644, src/app/main/ui/settings/subscription.cljs:713 +#: src/app/main/ui/settings/subscription.cljs:633, src/app/main/ui/settings/subscription.cljs:643, src/app/main/ui/settings/subscription.cljs:712 msgid "subscription.settings.enterprise.capped-bill" msgstr "Flat monthly bill" -#: src/app/main/ui/settings/subscription.cljs:632, src/app/main/ui/settings/subscription.cljs:642, src/app/main/ui/settings/subscription.cljs:711 +#: src/app/main/ui/settings/subscription.cljs:631, src/app/main/ui/settings/subscription.cljs:641, src/app/main/ui/settings/subscription.cljs:710 msgid "subscription.settings.enterprise.unlimited-storage-benefit" msgstr "Unlimited storage" -#: src/app/main/ui/dashboard/subscription.cljs:222, src/app/main/ui/settings/subscription.cljs:584, src/app/main/ui/settings/subscription.cljs:611, src/app/main/ui/settings/subscription.cljs:623, src/app/main/ui/settings/subscription.cljs:635, src/app/main/ui/settings/subscription.cljs:645 +#: src/app/main/ui/dashboard/subscription.cljs:287, src/app/main/ui/settings/subscription.cljs:583, src/app/main/ui/settings/subscription.cljs:610, src/app/main/ui/settings/subscription.cljs:622, src/app/main/ui/settings/subscription.cljs:634, src/app/main/ui/settings/subscription.cljs:644 msgid "subscription.settings.manage-your-subscription" msgstr "Manage your subscription" -#: src/app/main/ui/settings/subscription.cljs:329 +#: src/app/main/ui/settings/subscription.cljs:328 msgid "subscription.settings.management-dialog.step-2-add-payment-button" msgstr "Add payment details" -#: src/app/main/ui/settings/subscription.cljs:316 +#: src/app/main/ui/settings/subscription.cljs:315 msgid "subscription.settings.management-dialog.step-2-description" msgstr "" "Add your payment details now to keep your subscription running smoothly " "after the trial and continue supporting our open-source project. You won’t " "be charged yet." -#: src/app/main/ui/settings/subscription.cljs:324 +#: src/app/main/ui/settings/subscription.cljs:323 msgid "subscription.settings.management-dialog.step-2-skip-button" msgstr "Skip for now and start trial" -#: src/app/main/ui/settings/subscription.cljs:247 +#: src/app/main/ui/settings/subscription.cljs:246 msgid "subscription.settings.management-dialog.step-2-title" msgstr "Help us grow and make your trial easier" -#: src/app/main/ui/settings/subscription.cljs:129 +#: src/app/main/ui/settings/subscription.cljs:128 msgid "subscription.settings.management.dialog.currently-editors-title" msgid_plural "subscription.settings.management.dialog.currently-editors-title" msgstr[0] "Currently, your have %s person across your teams who can edit." msgstr[1] "Currently, your have %s people across your teams who can edit." -#: src/app/main/ui/settings/subscription.cljs:261 +#: src/app/main/ui/settings/subscription.cljs:260 msgid "subscription.settings.management.dialog.downgrade" msgstr "" "Heads up: switching to a lower plan means less storage and shorter backups " "and version history." -#: src/app/main/ui/settings/subscription.cljs:131 +#: src/app/main/ui/settings/subscription.cljs:130 msgid "subscription.settings.management.dialog.editors" msgstr "Editors" -#: src/app/main/ui/settings/subscription.cljs:138 +#: src/app/main/ui/settings/subscription.cljs:137 msgid "subscription.settings.management.dialog.editors-explanation" msgstr "(Owners, Admin and Editors. Viewers doesn't count as Editors)" -#: src/app/main/ui/settings/subscription.cljs:294 +#: src/app/main/ui/settings/subscription.cljs:293 msgid "subscription.settings.management.dialog.input-error" msgstr "" "You can't set fewer editors than you have now. Change the role " "(editor/admin to viewer) for people who don't actually edit files in the " "team settings." -#: src/app/main/ui/settings/subscription.cljs:290 +#: src/app/main/ui/settings/subscription.cljs:289 msgid "subscription.settings.management.dialog.payment-explanation" msgstr "Charged after trial. No credit card required right now." -#: src/app/main/ui/settings/subscription.cljs:283, src/app/main/ui/settings/subscription.cljs:287 +#: src/app/main/ui/settings/subscription.cljs:282, src/app/main/ui/settings/subscription.cljs:286 #, markdown msgid "subscription.settings.management.dialog.price-month" msgstr "**$%s**/month" -#: src/app/main/ui/settings/subscription.cljs:248 +#: src/app/main/ui/settings/subscription.cljs:247 msgid "subscription.settings.management.dialog.title" msgstr "Apply %s to your teams" -#: src/app/main/ui/settings/subscription.cljs:297 +#: src/app/main/ui/settings/subscription.cljs:296 msgid "subscription.settings.management.dialog.unlimited-capped-warning" msgstr "" "Tip: You can increase your seat count now to stay ahead of invites. At 25+ " "editors across teams, you’ll enjoy a flat $175/month." -#: src/app/main/ui/settings/subscription.cljs:663 +#: src/app/main/ui/settings/subscription.cljs:662 msgid "subscription.settings.member-since" msgstr "Penpot member since: %s" -#: src/app/main/ui/settings/subscription.cljs:686, src/app/main/ui/settings/subscription.cljs:700, src/app/main/ui/settings/subscription.cljs:716, src/app/main/ui/settings/subscription.cljs:732 +#: src/app/main/ui/settings/subscription.cljs:685, src/app/main/ui/settings/subscription.cljs:699, src/app/main/ui/settings/subscription.cljs:715, src/app/main/ui/settings/subscription.cljs:731 msgid "subscription.settings.more-information" msgstr "More information" -#: src/app/main/ui/settings/subscription.cljs:725 +#: src/app/main/ui/settings/subscription.cljs:724 msgid "subscription.settings.organization-member-month" msgstr "org member per month" -#: src/app/main/ui/settings/subscription.cljs:666 +#: src/app/main/ui/settings/subscription.cljs:665 msgid "subscription.settings.other-plans" msgstr "Other penpot plans" -#: src/app/main/ui/settings/subscription.cljs:670, src/app/main/ui/settings/subscription.cljs:693 +#: src/app/main/ui/settings/subscription.cljs:669, src/app/main/ui/settings/subscription.cljs:692 msgid "subscription.settings.price-editor-month" msgstr "editor per month" -#: src/app/main/ui/settings/subscription.cljs:709 +#: src/app/main/ui/settings/subscription.cljs:708 msgid "subscription.settings.price-organization-month" msgstr "organization per month" -#: src/app/main/ui/dashboard/subscription.cljs:212, src/app/main/ui/settings/subscription.cljs:115, src/app/main/ui/settings/subscription.cljs:592, src/app/main/ui/settings/subscription.cljs:668 +#: src/app/main/ui/dashboard/subscription.cljs:277, src/app/main/ui/settings/subscription.cljs:114, src/app/main/ui/settings/subscription.cljs:591, src/app/main/ui/settings/subscription.cljs:667 msgid "subscription.settings.professional" msgstr "Professional" -#: src/app/main/ui/settings/subscription.cljs:597, src/app/main/ui/settings/subscription.cljs:675 +#: src/app/main/ui/settings/subscription.cljs:596, src/app/main/ui/settings/subscription.cljs:674 msgid "subscription.settings.professional.autosave-benefit" msgstr "7-day autosave versions and file recovery" -#: src/app/main/ui/settings/subscription.cljs:601, src/app/main/ui/settings/subscription.cljs:679 +#: src/app/main/ui/settings/subscription.cljs:600, src/app/main/ui/settings/subscription.cljs:678 msgid "subscription.settings.professional.selfhost.community-support" msgstr "All design and prototyping features Community support." -#: src/app/main/ui/settings/subscription.cljs:595, src/app/main/ui/settings/subscription.cljs:673 +#: src/app/main/ui/settings/subscription.cljs:594, src/app/main/ui/settings/subscription.cljs:672 msgid "subscription.settings.professional.selfhost.control-over-data" msgstr "Complete control over data and infrastructure." -#: src/app/main/ui/settings/subscription.cljs:598, src/app/main/ui/settings/subscription.cljs:676 +#: src/app/main/ui/settings/subscription.cljs:597, src/app/main/ui/settings/subscription.cljs:675 msgid "subscription.settings.professional.selfhost.unlimited-users" msgstr "Unlimited users, teams and files." -#: src/app/main/ui/settings/subscription.cljs:594, src/app/main/ui/settings/subscription.cljs:672 +#: src/app/main/ui/settings/subscription.cljs:593, src/app/main/ui/settings/subscription.cljs:671 msgid "subscription.settings.professional.storage-benefit" msgstr "10GB of storage" -#: src/app/main/ui/settings/subscription.cljs:600, src/app/main/ui/settings/subscription.cljs:678 +#: src/app/main/ui/settings/subscription.cljs:599, src/app/main/ui/settings/subscription.cljs:677 msgid "subscription.settings.professional.teams-editors-benefit" msgstr "Unlimited teams. Up to 8 editors across your owned teams." @@ -6059,82 +6067,82 @@ msgstr "Unlimited teams. Up to 8 editors across your owned teams." msgid "subscription.settings.recommended" msgstr "Recommended" -#: src/app/main/ui/settings/subscription.cljs:570 +#: src/app/main/ui/settings/subscription.cljs:569 msgid "subscription.settings.section-plan" msgstr "Your subscription" -#: src/app/main/ui/settings/subscription.cljs:344 +#: src/app/main/ui/settings/subscription.cljs:343 msgid "subscription.settings.start-trial" msgstr "Start free trial" -#: src/app/main/ui/settings/subscription.cljs:309, src/app/main/ui/settings/subscription.cljs:680, src/app/main/ui/settings/subscription.cljs:698, src/app/main/ui/settings/subscription.cljs:714, src/app/main/ui/settings/subscription.cljs:730, src/app/main/ui/settings/subscription.cljs:783 +#: src/app/main/ui/settings/subscription.cljs:308, src/app/main/ui/settings/subscription.cljs:679, src/app/main/ui/settings/subscription.cljs:697, src/app/main/ui/settings/subscription.cljs:713, src/app/main/ui/settings/subscription.cljs:729, src/app/main/ui/settings/subscription.cljs:782 msgid "subscription.settings.subscribe" msgstr "Subscribe" -#: src/app/main/ui/settings/subscription.cljs:376 +#: src/app/main/ui/settings/subscription.cljs:375 msgid "subscription.settings.success.dialog.description" msgstr "" "You can edit your subscription at any time from the 'Subscription' page in " "your account details." -#: src/app/main/ui/settings/subscription.cljs:378 +#: src/app/main/ui/settings/subscription.cljs:377 msgid "subscription.settings.success.dialog.footer" msgstr "Enjoy your plan!" -#: src/app/main/ui/settings/subscription.cljs:374 +#: src/app/main/ui/settings/subscription.cljs:373 msgid "subscription.settings.success.dialog.thanks" msgstr "Thank your for chosing the Penpot %s plan!" -#: src/app/main/ui/settings/subscription.cljs:371 +#: src/app/main/ui/settings/subscription.cljs:370 msgid "subscription.settings.success.dialog.title" msgstr "You are %s!" -#: src/app/main/ui/settings/subscription.cljs:656 +#: src/app/main/ui/settings/subscription.cljs:655 #, fuzzy msgid "subscription.settings.support-us-since" msgstr "You've been supporting us with this plan since: %s" -#: src/app/main/ui/settings/subscription.cljs:698, src/app/main/ui/settings/subscription.cljs:714 +#: src/app/main/ui/settings/subscription.cljs:697, src/app/main/ui/settings/subscription.cljs:713 msgid "subscription.settings.try-it-free" msgstr "Try it free for 14 days" -#: src/app/main/ui/dashboard/subscription.cljs:215, src/app/main/ui/settings/subscription.cljs:116, src/app/main/ui/settings/subscription.cljs:558, src/app/main/ui/settings/subscription.cljs:617, src/app/main/ui/settings/subscription.cljs:690 +#: src/app/main/ui/dashboard/subscription.cljs:280, src/app/main/ui/settings/subscription.cljs:115, src/app/main/ui/settings/subscription.cljs:557, src/app/main/ui/settings/subscription.cljs:616, src/app/main/ui/settings/subscription.cljs:689 msgid "subscription.settings.unlimited" msgstr "Unlimited" -#: src/app/main/ui/dashboard/subscription.cljs:214, src/app/main/ui/settings/subscription.cljs:112, src/app/main/ui/settings/subscription.cljs:557, src/app/main/ui/settings/subscription.cljs:605 +#: src/app/main/ui/dashboard/subscription.cljs:279, src/app/main/ui/settings/subscription.cljs:111, src/app/main/ui/settings/subscription.cljs:556, src/app/main/ui/settings/subscription.cljs:604 msgid "subscription.settings.unlimited-trial" msgstr "Unlimited (trial)" -#: src/app/main/ui/settings/subscription.cljs:609, src/app/main/ui/settings/subscription.cljs:621, src/app/main/ui/settings/subscription.cljs:696 +#: src/app/main/ui/settings/subscription.cljs:608, src/app/main/ui/settings/subscription.cljs:620, src/app/main/ui/settings/subscription.cljs:695 msgid "subscription.settings.unlimited.autosave-benefit" msgstr "30-day autosave versions and file recovery" -#: src/app/main/ui/settings/subscription.cljs:610, src/app/main/ui/settings/subscription.cljs:622, src/app/main/ui/settings/subscription.cljs:697 +#: src/app/main/ui/settings/subscription.cljs:609, src/app/main/ui/settings/subscription.cljs:621, src/app/main/ui/settings/subscription.cljs:696 msgid "subscription.settings.unlimited.bill" msgstr "Capped monthly bill at $175" -#: src/app/main/ui/settings/subscription.cljs:608, src/app/main/ui/settings/subscription.cljs:620, src/app/main/ui/settings/subscription.cljs:695 +#: src/app/main/ui/settings/subscription.cljs:607, src/app/main/ui/settings/subscription.cljs:619, src/app/main/ui/settings/subscription.cljs:694 msgid "subscription.settings.unlimited.storage-benefit" msgstr "25GB of storage" -#: src/app/main/ui/dashboard/subscription.cljs:247, src/app/main/ui/workspace/main_menu.cljs:1110 +#: src/app/main/ui/dashboard/subscription.cljs:312, src/app/main/ui/workspace/main_menu.cljs:1115 msgid "subscription.workspace.header.menu.option.power-up" msgstr "Power up your plan" -#: src/app/main/ui/workspace/sidebar/versions.cljs:57 +#: src/app/main/ui/workspace/sidebar/versions.cljs:63 #, markdown msgid "subscription.workspace.versions.warning.enterprise.subtext-owner" msgstr "If you'd like to increase this limit, write to us at [%s](mailto)" -#: src/app/main/ui/workspace/sidebar/versions.cljs:59 +#: src/app/main/ui/workspace/sidebar/versions.cljs:65 #, markdown msgid "subscription.workspace.versions.warning.subtext-member" msgstr "" "If you'd like to increase this limit, contact with the team owner: " "[%s](mailto)" -#: src/app/main/ui/workspace/sidebar/versions.cljs:58 +#: src/app/main/ui/workspace/sidebar/versions.cljs:64 #, markdown msgid "subscription.workspace.versions.warning.subtext-owner" msgstr "If you'd like to increase this limit, [upgrade your plan|target:self](%s)" @@ -6177,7 +6185,7 @@ msgstr "Penpot | Full-stack design" msgid "title.settings.feedback" msgstr "Give feedback - Penpot" -#: src/app/main/ui/settings/integrations.cljs:619 +#: src/app/main/ui/settings/integrations.cljs:617 msgid "title.settings.integrations" msgstr "Integrations - Penpot" @@ -6185,7 +6193,7 @@ msgstr "Integrations - Penpot" msgid "title.settings.notifications" msgstr "Notifications - Penpot" -#: src/app/main/ui/settings/options.cljs:124 +#: src/app/main/ui/settings/options.cljs:123 msgid "title.settings.options" msgstr "Settings - Penpot" @@ -6249,7 +6257,7 @@ msgstr "Board not found." msgid "viewer.header.comments-section" msgstr "Comments (%s)" -#: src/app/main/ui/viewer/interactions.cljs:296 +#: src/app/main/ui/viewer/interactions.cljs:268 msgid "viewer.header.dont-show-interactions" msgstr "Don't show interactions" @@ -6266,7 +6274,7 @@ msgstr "Full Screen" msgid "viewer.header.inspect-section" msgstr "Inspect (%s)" -#: src/app/main/ui/viewer/interactions.cljs:286 +#: src/app/main/ui/viewer/interactions.cljs:258 msgid "viewer.header.interactions" msgstr "Interactions" @@ -6278,11 +6286,11 @@ msgstr "Interactions (%s)" msgid "viewer.header.share.copy-link" msgstr "Copy link" -#: src/app/main/ui/viewer/interactions.cljs:304 +#: src/app/main/ui/viewer/interactions.cljs:276 msgid "viewer.header.show-interactions" msgstr "Show interactions" -#: src/app/main/ui/viewer/interactions.cljs:315 +#: src/app/main/ui/viewer/interactions.cljs:287 msgid "viewer.header.show-interactions-on-click" msgstr "Show interactions on click" @@ -6330,11 +6338,11 @@ msgstr "WebGL rendering disabled" msgid "webgl.toast.webgl-render-enabled" msgstr "WebGL rendering enabled" -#: src/app/render_wasm/api.cljs:1869 +#: src/app/render_wasm/api.cljs:2002 msgid "webgl.webgl-context-lost.toast" msgstr "WebGL context was lost" -#: src/app/render_wasm/api.cljs:1885 +#: src/app/render_wasm/api.cljs:2018 msgid "webgl.webgl-context-recovered.toast" msgstr "WebGL context was recovered" @@ -6387,11 +6395,11 @@ msgstr "Assets" msgid "workspace.assets.box-filter-all" msgstr "All assets" -#: src/app/main/ui/dashboard/grid.cljs:160, src/app/main/ui/dashboard/grid.cljs:192, src/app/main/ui/workspace/sidebar/assets/colors.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:165 +#: src/app/main/ui/dashboard/grid.cljs:160, src/app/main/ui/dashboard/grid.cljs:192, src/app/main/ui/workspace/colorpicker/libraries.cljs:362, src/app/main/ui/workspace/colorpicker/libraries.cljs:379, src/app/main/ui/workspace/colorpicker/libraries.cljs:393, src/app/main/ui/workspace/sidebar/assets/colors.cljs:512, src/app/main/ui/workspace/sidebar/assets.cljs:165 msgid "workspace.assets.colors" msgstr "Colors" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:521 +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:520 msgid "workspace.assets.colors.add-color" msgstr "Add color" @@ -6419,7 +6427,7 @@ msgstr "Create a group" msgid "workspace.assets.create-group-hint" msgstr "Your items are going to be named automatically as \"group name / item name\"" -#: src/app/main/ui/workspace/context_menu.cljs:716, src/app/main/ui/workspace/sidebar/assets/colors.cljs:266, src/app/main/ui/workspace/sidebar/assets/components.cljs:670, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:475, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:540 +#: src/app/main/ui/workspace/context_menu.cljs:716, src/app/main/ui/workspace/sidebar/assets/colors.cljs:265, src/app/main/ui/workspace/sidebar/assets/components.cljs:670, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:475, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:538 msgid "workspace.assets.delete" msgstr "Delete" @@ -6427,7 +6435,7 @@ msgstr "Delete" msgid "workspace.assets.delete-group" msgstr "Delete group" -#: src/app/main/ui/workspace/context_menu.cljs:721, src/app/main/ui/workspace/sidebar/assets/colors.cljs:263, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:471, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:536 +#: src/app/main/ui/workspace/context_menu.cljs:721, src/app/main/ui/workspace/sidebar/assets/colors.cljs:262, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:471, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:534 msgid "workspace.assets.duplicate" msgstr "Duplicate" @@ -6435,7 +6443,7 @@ msgstr "Duplicate" msgid "workspace.assets.duplicate-main" msgstr "Duplicate main" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:259, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:466 +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:258, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:466 msgid "workspace.assets.edit" msgstr "Edit" @@ -6448,11 +6456,11 @@ msgstr "Filter" msgid "workspace.assets.graphics" msgstr "Graphics" -#: src/app/main/ui/workspace/colorpicker/color_tokens.cljs:192, src/app/main/ui/workspace/sidebar/assets/components.cljs:604 +#: src/app/main/ui/workspace/colorpicker/color_tokens.cljs:192, src/app/main/ui/workspace/colorpicker/libraries.cljs:345, src/app/main/ui/workspace/sidebar/assets/components.cljs:604 msgid "workspace.assets.grid-view" msgstr "Grid view" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:270, src/app/main/ui/workspace/sidebar/assets/components.cljs:654, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:480 +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:269, src/app/main/ui/workspace/sidebar/assets/components.cljs:654, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:480 msgid "workspace.assets.group" msgstr "Group" @@ -6460,7 +6468,7 @@ msgstr "Group" msgid "workspace.assets.group-name" msgstr "Group name" -#: src/app/main/ui/workspace/colorpicker/color_tokens.cljs:193, src/app/main/ui/workspace/sidebar/assets/components.cljs:600 +#: src/app/main/ui/workspace/colorpicker/color_tokens.cljs:193, src/app/main/ui/workspace/colorpicker/libraries.cljs:344, src/app/main/ui/workspace/sidebar/assets/components.cljs:600 msgid "workspace.assets.list-view" msgstr "List view" @@ -6480,7 +6488,7 @@ msgstr "No assets found" msgid "workspace.assets.open-library" msgstr "Open library file" -#: src/app/main/ui/workspace/context_menu.cljs:719, src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:645, src/app/main/ui/workspace/sidebar/assets/groups.cljs:66, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:461 +#: src/app/main/ui/workspace/context_menu.cljs:719, src/app/main/ui/workspace/sidebar/assets/colors.cljs:254, src/app/main/ui/workspace/sidebar/assets/components.cljs:645, src/app/main/ui/workspace/sidebar/assets/groups.cljs:66, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:461 msgid "workspace.assets.rename" msgstr "Rename" @@ -6527,27 +6535,27 @@ msgstr "Add typography" msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:576 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:574 msgid "workspace.assets.typography.font-size" msgstr "Size" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:572 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:570 msgid "workspace.assets.typography.font-style" msgstr "Font Style" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:594 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:592 msgid "workspace.assets.typography.go-to-edit" msgstr "Go to style library file to edit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:584 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:582 msgid "workspace.assets.typography.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:580 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:578 msgid "workspace.assets.typography.line-height" msgstr "Line Height" -#: src/app/main/ui/dashboard/grid.cljs:229, src/app/main/ui/workspace/libraries.cljs:607, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:521, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:559, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:667, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:687 +#: src/app/main/ui/dashboard/grid.cljs:229, src/app/main/ui/workspace/libraries.cljs:607, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:519, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:557, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:664, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:684 msgid "workspace.assets.typography.sample" msgstr "Ag" @@ -6555,7 +6563,7 @@ msgstr "Ag" msgid "workspace.assets.typography.text-styles" msgstr "Text styles" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:588 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:586 msgid "workspace.assets.typography.text-transform" msgstr "Text Transform" @@ -6563,15 +6571,15 @@ msgstr "Text Transform" msgid "workspace.assets.ungroup" msgstr "Ungroup" -#: src/app/main/data/workspace/clipboard.cljs:1175 +#: src/app/main/data/workspace/clipboard.cljs:1176 msgid "workspace.clipboard.copying" msgstr "Copying image…" -#: src/app/main/data/workspace/clipboard.cljs:1198 +#: src/app/main/data/workspace/clipboard.cljs:1199 msgid "workspace.clipboard.image-copied" msgstr "Image copied to the clipboard" -#: src/app/main/data/workspace/clipboard.cljs:1204 +#: src/app/main/data/workspace/clipboard.cljs:1205 msgid "workspace.clipboard.image-copy-failed" msgstr "Error copying image" @@ -6783,35 +6791,35 @@ msgstr "Hide fonts palette" msgid "workspace.header.menu.lock-guides" msgstr "Lock guides" -#: src/app/main/ui/workspace/main_menu.cljs:853 +#: src/app/main/ui/workspace/main_menu.cljs:848 msgid "workspace.header.menu.mcp.plugin.status.connect" msgstr "Connect" -#: src/app/main/ui/workspace/main_menu.cljs:852 +#: src/app/main/ui/workspace/main_menu.cljs:847 msgid "workspace.header.menu.mcp.plugin.status.disconnect" msgstr "Disconnect" -#: src/app/main/ui/workspace/main_menu.cljs:862 +#: src/app/main/ui/workspace/main_menu.cljs:857 msgid "workspace.header.menu.mcp.server.status.disabled" msgstr "Manage (Status: disabled)" -#: src/app/main/ui/workspace/main_menu.cljs:861 +#: src/app/main/ui/workspace/main_menu.cljs:856 msgid "workspace.header.menu.mcp.server.status.enabled" msgstr "Manage (Status: enabled)" -#: src/app/main/ui/workspace/main_menu.cljs:1005 +#: src/app/main/ui/workspace/main_menu.cljs:1013 msgid "workspace.header.menu.option.edit" msgstr "Edit" -#: src/app/main/ui/workspace/main_menu.cljs:992 +#: src/app/main/ui/workspace/main_menu.cljs:1000 msgid "workspace.header.menu.option.file" msgstr "File" -#: src/app/main/ui/workspace/main_menu.cljs:1092 +#: src/app/main/ui/workspace/main_menu.cljs:1097 msgid "workspace.header.menu.option.help-info" msgstr "Help & info" -#: src/app/main/ui/workspace/main_menu.cljs:1074 +#: src/app/main/ui/workspace/main_menu.cljs:1079 msgid "workspace.header.menu.option.mcp" msgstr "MCP server" @@ -6820,11 +6828,11 @@ msgstr "MCP server" msgid "workspace.header.menu.option.power-up" msgstr "Power up your plan" -#: src/app/main/ui/workspace/main_menu.cljs:1031 +#: src/app/main/ui/workspace/main_menu.cljs:1039 msgid "workspace.header.menu.option.preferences" msgstr "Preferences" -#: src/app/main/ui/workspace/main_menu.cljs:1018 +#: src/app/main/ui/workspace/main_menu.cljs:1026 msgid "workspace.header.menu.option.view" msgstr "View" @@ -6996,15 +7004,23 @@ msgid_plural "workspace.libraries.colors" msgstr[0] "1 color" msgstr[1] "%s colors" -#: src/app/main/ui/workspace/color_palette.cljs:203 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs:354 +msgid "workspace.libraries.colors.add-library-color" +msgstr "Add color to library" + +#: src/app/main/ui/workspace/color_palette.cljs:203, src/app/main/ui/workspace/colorpicker/libraries.cljs:372, src/app/main/ui/workspace/colorpicker/libraries.cljs:403 msgid "workspace.libraries.colors.empty-palette" msgstr "There are no color styles in your library yet" +#: src/app/main/ui/workspace/colorpicker/libraries.cljs:371, src/app/main/ui/workspace/colorpicker/libraries.cljs:387 +msgid "workspace.libraries.colors.empty-recent-colors" +msgstr "There are no recent colors yet" + #: src/app/main/ui/workspace/text_palette.cljs:158 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "There are no typography styles in your library yet" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:88, src/app/main/ui/workspace/colorpicker/libraries.cljs:47, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:49 +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:88, src/app/main/ui/workspace/colorpicker/libraries.cljs:220, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:49 msgid "workspace.libraries.colors.file-library" msgstr "File library" @@ -7013,22 +7029,10 @@ msgstr "File library" msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:111, src/app/main/ui/workspace/colorpicker/libraries.cljs:46 +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:111, src/app/main/ui/workspace/colorpicker/libraries.cljs:219 msgid "workspace.libraries.colors.recent-colors" msgstr "Recent colors" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs -msgid "workspace.libraries.colors.add-library-color" -msgstr "Add color to library" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs -msgid "workspace.libraries.colors.toggle-color-palette" -msgstr "Toggle color palette" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs -msgid "workspace.libraries.colors.empty-recent-colors" -msgstr "There are no recent colors yet" - #: src/app/main/ui/workspace/colorpicker.cljs #, unused msgid "workspace.libraries.colors.rgb-complementary" @@ -7042,6 +7046,10 @@ msgstr "RGBA" msgid "workspace.libraries.colors.save-color" msgstr "Save color style" +#: src/app/main/ui/workspace/colorpicker/libraries.cljs:336 +msgid "workspace.libraries.colors.toggle-color-palette" +msgstr "Toggle color palette" + #: src/app/main/ui/workspace/libraries.cljs:97, src/app/main/ui/workspace/libraries.cljs:120 msgid "workspace.libraries.components" msgid_plural "workspace.libraries.components" @@ -7443,7 +7451,7 @@ msgstr "Create typography style" msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/inspect/exports.cljs:140 +#: src/app/main/ui/inspect/exports.cljs:161 msgid "workspace.options.export" msgstr "Export" @@ -7452,7 +7460,7 @@ msgstr "Export" msgid "workspace.options.export-multiple" msgstr "Export selection" -#: src/app/main/ui/inspect/exports.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:274 +#: src/app/main/ui/inspect/exports.cljs:217, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:274 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Export 1 element" @@ -7466,7 +7474,7 @@ msgstr "Add export" msgid "workspace.options.export.remove-export" msgstr "Remove export" -#: src/app/main/ui/inspect/exports.cljs:179, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:254 +#: src/app/main/ui/inspect/exports.cljs:200, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:254 msgid "workspace.options.export.suffix" msgstr "Suffix" @@ -7474,7 +7482,7 @@ msgstr "Suffix" msgid "workspace.options.exporting-complete" msgstr "Export complete" -#: src/app/main/ui/exports/assets.cljs:171, src/app/main/ui/exports/assets.cljs:253, src/app/main/ui/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:273 +#: src/app/main/ui/exports/assets.cljs:171, src/app/main/ui/exports/assets.cljs:253, src/app/main/ui/inspect/exports.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:273 msgid "workspace.options.exporting-object" msgstr "Exporting…" @@ -8429,11 +8437,11 @@ msgstr "Auto width" msgid "workspace.options.text-options.grow-fixed" msgstr "Fixed" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:410 msgid "workspace.options.text-options.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:393 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:391 msgid "workspace.options.text-options.line-height" msgstr "Line height" @@ -8570,7 +8578,7 @@ msgstr "No plugins installed yet" msgid "workspace.plugins.error.manifest" msgstr "The plugin manifest is incorrect." -#: src/app/main/data/plugins.cljs:115, src/app/main/ui/workspace/main_menu.cljs:784, src/app/main/ui/workspace/plugins.cljs:97 +#: src/app/main/data/plugins.cljs:128, src/app/main/ui/workspace/main_menu.cljs:784, src/app/main/ui/workspace/plugins.cljs:97 msgid "workspace.plugins.error.need-editor" msgstr "You need to be an editor to use this plugin" @@ -8590,7 +8598,7 @@ msgstr "Installed plugins" msgid "workspace.plugins.menu.plugins-manager" msgstr "Plugins manager" -#: src/app/main/ui/workspace/main_menu.cljs:1045 +#: src/app/main/ui/workspace/main_menu.cljs:1053 msgid "workspace.plugins.menu.title" msgstr "Plugins" @@ -9073,11 +9081,11 @@ msgstr "Texts" msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Imported SVG Attributes" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:290 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:291 msgid "workspace.sidebar.sitemap" msgstr "Pages" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:300 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:301 msgid "workspace.sidebar.sitemap.add-page" msgstr "Add page" @@ -9102,7 +9110,7 @@ msgstr "Add new theme" msgid "workspace.tokens.add-set-to-group" msgstr "Add set to this group" -#: src/app/main/ui/workspace/colorpicker/color_tokens.cljs:199, src/app/main/ui/workspace/tokens/management/group.cljs:184 +#: src/app/main/ui/workspace/colorpicker/color_tokens.cljs:199, src/app/main/ui/workspace/tokens/management/group.cljs:183 msgid "workspace.tokens.add-token" msgstr "Add token: %s" @@ -9152,7 +9160,7 @@ msgstr "Create your first theme now." msgid "workspace.tokens.create-one" msgstr "Create one." -#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:297 +#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:292 msgid "workspace.tokens.create-token" msgstr "Create new %s token" @@ -9177,10 +9185,12 @@ msgid "workspace.tokens.duplicate-suffix" msgstr "copy" #: src/app/main/data/workspace/tokens/errors.cljs:32 +#, unused msgid "workspace.tokens.duplicated-json-token-name" msgstr "Import Error: Duplicated token name in JSON." #: src/app/main/data/workspace/tokens/errors.cljs:33 +#, unused msgid "workspace.tokens.duplicated-json-token-name-detail" msgstr "" "A token already exists at the path '%s' or at a prefix thereof, in another " @@ -9198,15 +9208,15 @@ msgstr "Edit theme" msgid "workspace.tokens.edit-themes" msgstr "Edit themes" -#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:296 +#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:291 msgid "workspace.tokens.edit-token" msgstr "Edit %s token" -#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:303 +#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:298 msgid "workspace.tokens.enter-token-name" msgstr "Enter %s token name" -#: src/app/main/data/workspace/tokens/application.cljs:730, src/app/main/ui/workspace/tokens/management/group.cljs:162 +#: src/app/main/data/workspace/tokens/application.cljs:730, src/app/main/ui/workspace/tokens/management/group.cljs:161 msgid "workspace.tokens.error-text-edition" msgstr "Tokens can't be applied while editing text. Select the text layer instead." @@ -9609,7 +9619,7 @@ msgstr "" msgid "workspace.tokens.themes-list" msgstr "Themes list" -#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:338, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:339 +#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:333, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:334 #, fuzzy msgid "workspace.tokens.token-description" msgstr "Description" @@ -9626,7 +9636,7 @@ msgstr "Font family" msgid "workspace.tokens.token-font-family-value-enter" msgstr "Font family or list of fonts separated by comma (,)" -#: src/app/main/ui/ds/controls/shared/token_option.cljs:43, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:86, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:114, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:131, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:302, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:63, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:64 +#: src/app/main/ui/ds/controls/shared/token_option.cljs:43, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:86, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:114, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:131, src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:297, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:63, src/app/main/ui/workspace/tokens/management/forms/rename_node_modal.cljs:64 msgid "workspace.tokens.token-name" msgstr "Name" @@ -9650,11 +9660,11 @@ msgstr "" msgid "workspace.tokens.token-not-resolved" msgstr "Could not resolve reference token with the name: %s" -#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:329 +#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:324 msgid "workspace.tokens.token-value" msgstr "Value" -#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:328, src/app/main/ui/workspace/tokens/management/forms/shadow.cljs:131 +#: src/app/main/ui/workspace/tokens/management/forms/generic_form.cljs:323, src/app/main/ui/workspace/tokens/management/forms/shadow.cljs:131 msgid "workspace.tokens.token-value-enter" msgstr "Enter a value or alias with {alias}" @@ -9695,19 +9705,15 @@ msgstr "Renaming this token will break any reference to its old name" msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/palette.cljs:181, src/app/main/ui/workspace/palette.cljs:182 +#: src/app/main/ui/workspace/palette.cljs:182, src/app/main/ui/workspace/palette.cljs:183 msgid "workspace.toolbar.color-palette" msgstr "Color Palette (%s)" -#: src/app/main/ui/workspace/palette.cljs -msgid "workspace.toolbar.palette-bar" -msgstr "Palette bar" - #: src/app/main/ui/workspace/right_header.cljs:214, src/app/main/ui/workspace/right_header.cljs:215 msgid "workspace.toolbar.comments" msgstr "Comments (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:187, src/app/main/ui/workspace/top_toolbar.cljs:188 +#: src/app/main/ui/workspace/top_toolbar.cljs:245, src/app/main/ui/workspace/top_toolbar.cljs:246 msgid "workspace.toolbar.curve" msgstr "Curve (%s)" @@ -9716,44 +9722,51 @@ msgstr "Curve (%s)" msgid "workspace.toolbar.debug" msgstr "Debugging tools" -#: src/app/main/ui/workspace/top_toolbar.cljs:167, src/app/main/ui/workspace/top_toolbar.cljs:168 +#: src/app/main/ui/workspace/top_toolbar.cljs:225, src/app/main/ui/workspace/top_toolbar.cljs:226 msgid "workspace.toolbar.ellipse" msgstr "Ellipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:129, src/app/main/ui/workspace/top_toolbar.cljs:150 +#: src/app/main/ui/workspace/top_toolbar.cljs:187, src/app/main/ui/workspace/top_toolbar.cljs:208 msgid "workspace.toolbar.frame" msgstr "Board (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:128 +#: src/app/main/ui/workspace/top_toolbar.cljs:186 msgid "workspace.toolbar.frame-first-time" msgstr "Create board. Click and drag to define its size. (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:56, src/app/main/ui/workspace/top_toolbar.cljs:57 +#: src/app/main/ui/workspace/top_toolbar.cljs:114, src/app/main/ui/workspace/top_toolbar.cljs:115 msgid "workspace.toolbar.image" msgstr "Image (%s)" +#: src/app/main/ui/workspace/top_toolbar.cljs:63, src/app/main/ui/workspace/top_toolbar.cljs:64, src/app/main/ui/workspace/top_toolbar.cljs:75 msgid "workspace.toolbar.mcp" msgstr "MCP" -msgid "workspace.toolbar.mcp-connected" -msgstr "MCP connected" - +#: src/app/main/ui/workspace/top_toolbar.cljs:85 msgid "workspace.toolbar.mcp-connect-here" msgstr "Connect here" -#: src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/top_toolbar.cljs:82 +msgid "workspace.toolbar.mcp-connected" +msgstr "MCP connected" + +#: src/app/main/ui/workspace/top_toolbar.cljs:197, src/app/main/ui/workspace/top_toolbar.cljs:198 msgid "workspace.toolbar.move" msgstr "Move (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:196, src/app/main/ui/workspace/top_toolbar.cljs:197 +#: src/app/main/ui/workspace/palette.cljs:166 +msgid "workspace.toolbar.palette-bar" +msgstr "Palette bar" + +#: src/app/main/ui/workspace/top_toolbar.cljs:254, src/app/main/ui/workspace/top_toolbar.cljs:255 msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:207, src/app/main/ui/workspace/top_toolbar.cljs:208 +#: src/app/main/ui/workspace/top_toolbar.cljs:265, src/app/main/ui/workspace/top_toolbar.cljs:266 msgid "workspace.toolbar.plugins" msgstr "Plugins (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:158, src/app/main/ui/workspace/top_toolbar.cljs:159 +#: src/app/main/ui/workspace/top_toolbar.cljs:216, src/app/main/ui/workspace/top_toolbar.cljs:217 msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" @@ -9762,15 +9775,15 @@ msgstr "Rectangle (%s)" msgid "workspace.toolbar.shortcuts" msgstr "Shortcuts (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:176, src/app/main/ui/workspace/top_toolbar.cljs:177 +#: src/app/main/ui/workspace/top_toolbar.cljs:234, src/app/main/ui/workspace/top_toolbar.cljs:235 msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/palette.cljs:189, src/app/main/ui/workspace/palette.cljs:190 +#: src/app/main/ui/workspace/palette.cljs:190, src/app/main/ui/workspace/palette.cljs:191 msgid "workspace.toolbar.text-palette" msgstr "Typographies (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:226, src/app/main/ui/workspace/top_toolbar.cljs:227 +#: src/app/main/ui/workspace/top_toolbar.cljs:287, src/app/main/ui/workspace/top_toolbar.cljs:288 msgid "workspace.toolbar.toggle-toolbar" msgstr "Toggle toolbar" @@ -9940,7 +9953,7 @@ msgstr "Operation over %s" msgid "workspace.undo.title" msgstr "History" -#: src/app/main/data/workspace/libraries.cljs:1335, src/app/main/data/workspace/versions.cljs:230 +#: src/app/main/data/workspace/libraries.cljs:1335, src/app/main/data/workspace/versions.cljs:241 msgid "workspace.updates.dismiss" msgstr "Dismiss" @@ -9960,27 +9973,27 @@ msgstr "Update" msgid "workspace.versions.autosaved.entry" msgstr "%s autosave versions" -#: src/app/main/data/workspace/versions.cljs:290, src/app/main/ui/workspace/sidebar/versions.cljs:295 +#: src/app/main/data/workspace/versions.cljs:301, src/app/main/ui/workspace/sidebar/versions.cljs:301 msgid "workspace.versions.autosaved.version" msgstr "Autosaved %s" -#: src/app/main/ui/workspace/sidebar/versions.cljs:318 +#: src/app/main/ui/workspace/sidebar/versions.cljs:324 msgid "workspace.versions.button.pin" msgstr "Pin version" -#: src/app/main/ui/workspace/sidebar/versions.cljs:228, src/app/main/ui/workspace/sidebar/versions.cljs:308 +#: src/app/main/ui/workspace/sidebar/versions.cljs:234, src/app/main/ui/workspace/sidebar/versions.cljs:314 msgid "workspace.versions.button.preview" msgstr "Preview version" -#: src/app/main/ui/workspace/sidebar/versions.cljs:313 +#: src/app/main/ui/workspace/sidebar/versions.cljs:319 msgid "workspace.versions.button.restore" msgstr "Restore version" -#: src/app/main/ui/workspace/sidebar/versions.cljs:420, src/app/main/ui/workspace/sidebar/versions.cljs:422 +#: src/app/main/ui/workspace/sidebar/versions.cljs:426, src/app/main/ui/workspace/sidebar/versions.cljs:428 msgid "workspace.versions.button.save" msgstr "Save version" -#: src/app/main/ui/workspace/sidebar/versions.cljs:429 +#: src/app/main/ui/workspace/sidebar/versions.cljs:435 msgid "workspace.versions.empty" msgstr "There are no versions yet" @@ -9988,23 +10001,23 @@ msgstr "There are no versions yet" msgid "workspace.versions.expand-snapshot" msgstr "Expand snapshots" -#: src/app/main/ui/workspace/sidebar/versions.cljs:393 +#: src/app/main/ui/workspace/sidebar/versions.cljs:399 msgid "workspace.versions.filter.all" msgstr "All versions" -#: src/app/main/ui/workspace/sidebar/versions.cljs:407 +#: src/app/main/ui/workspace/sidebar/versions.cljs:413 msgid "workspace.versions.filter.label" msgstr "Versions filter" -#: src/app/main/ui/workspace/sidebar/versions.cljs:394 +#: src/app/main/ui/workspace/sidebar/versions.cljs:400 msgid "workspace.versions.filter.mine" msgstr "My versions" -#: src/app/main/ui/workspace/sidebar/versions.cljs:398 +#: src/app/main/ui/workspace/sidebar/versions.cljs:404 msgid "workspace.versions.filter.user" msgstr "%s's versions" -#: src/app/main/ui/workspace/sidebar/versions.cljs:415 +#: src/app/main/ui/workspace/sidebar/versions.cljs:421 msgid "workspace.versions.loading" msgstr "Loading..." @@ -10016,15 +10029,15 @@ msgstr "This version is locked by %s and cannot be modified" msgid "workspace.versions.locked-by-you" msgstr "This version is locked by you" -#: src/app/main/data/workspace/versions.cljs:301 +#: src/app/main/data/workspace/versions.cljs:312 msgid "workspace.versions.preview-banner-title" msgstr "Previewing version: %s" -#: src/app/main/data/workspace/versions.cljs:295 +#: src/app/main/data/workspace/versions.cljs:306 msgid "workspace.versions.preview.unnamed" msgstr "Unnamed version" -#: src/app/main/data/workspace/versions.cljs:228 +#: src/app/main/data/workspace/versions.cljs:239 msgid "workspace.versions.restore-warning" msgstr "Do you want to restore this version?" @@ -10048,14 +10061,14 @@ msgstr "Locked version - only the creator can modify it" msgid "workspace.versions.version-menu" msgstr "Open version menu" -#: src/app/main/ui/workspace/sidebar/versions.cljs:60 +#: src/app/main/ui/workspace/sidebar/versions.cljs:66 #, markdown msgid "workspace.versions.warning.subtext" msgstr "" "If you'd like to increase this limit, write to us at " "[support@penpot.app](%s)" -#: src/app/main/ui/workspace/sidebar/versions.cljs:457 +#: src/app/main/ui/workspace/sidebar/versions.cljs:463 msgid "workspace.versions.warning.text" msgstr "Autosaved versions will be kept for %s days." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 21e5b92e67..ae220f169f 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -756,12 +756,6 @@ msgstr[1] "%s bibliotecas fueron vinculadas automáticamente por nombre." msgid "dashboard.import.resolve-libraries" msgstr "Algunas bibliotecas no pudieron vincularse automáticamente. Selecciona la biblioteca correcta para cada una:" -msgid "dashboard.import.library-placeholder" -msgstr "Selecciona una biblioteca…" - -msgid "dashboard.import.library-link-error" -msgstr "No se pudo vincular la biblioteca" - msgid "dashboard.import.confirm-library-links" msgstr "Confirmar vínculos de biblioteca"