Compare commits

...

22 Commits

Author SHA1 Message Date
Eva Marco
4a9fef12eb 🐛 Fix url params on invitation link (#6638) 2025-06-05 12:28:53 +02:00
andrés gonzález
e1adbdfd9f 📚 Update changelog (#6616) 2025-06-04 15:12:33 +02:00
andrés gonzález
1120c7c7fb 🐛 Fix copy in error message (#6615) 2025-06-03 12:28:49 +02:00
Andrey Antukh
2244bf6aa7 Merge remote-tracking branch 'origin/main' into staging 2025-06-03 10:43:39 +02:00
Andrey Antukh
f4ef4a705c Merge tag '2.7.2-RC1' 2025-06-03 10:43:14 +02:00
Alejandro Alonso
fe8d9fdd76 Merge pull request #6614 from penpot/niwinz-staging-backport-1
 Make the hash optional on binfile-v3
2025-06-03 08:13:42 +02:00
Andrey Antukh
3131eec271 Make the hash optional on binfile-v3
Backport the change from develop
2025-06-02 23:24:35 +02:00
Andrey Antukh
27ab910a64 📚 Update changelog 2025-06-02 12:36:47 +02:00
Andrey Antukh
2398c1fc2b Merge pull request #6604 from penpot/alotor-fix-sandbox-runtime
🐛 Add sandbox runtime
2025-06-02 12:30:51 +02:00
alonso.torres
a3e17047a4 🐛 Add sandbox runtime 2025-05-30 15:40:36 +02:00
andrés gonzález
2943f80db5 📚 Change help links at the Help Center (#6582) 2025-05-28 13:22:42 +02:00
Andrés Moya
050ffa235c ⬆️ Update cuerdas library (#6556) 2025-05-26 13:22:30 +02:00
Andrey Antukh
fdd6502671 📚 Update changelog 2025-05-26 12:41:34 +02:00
Alejandro Alonso
ac0b74e11a Merge pull request #6549 from penpot/niwinz-staging-hotfix-1
🐛 Fix incorrect relink operation for stroke image
2025-05-26 09:50:52 +02:00
Andrey Antukh
b5d96d312a 🐛 Fix incorrect relink operation for stroke image 2025-05-24 09:16:10 +02:00
Eva Marco
99fb905070 🐛 Fix at icon (#6540) 2025-05-22 13:15:09 +02:00
María Valderrama
faa68784af 💄 Add styles for external widgets on workspace (#6509)
* 💄 Add styles for Inkeep Chat at workspace

* 📎 Styles review
2025-05-22 11:56:45 +02:00
Alejandro Alonso
0748ef7267 Merge pull request #6518 from penpot/niwinz-staging-tokenslib-json-encoding
🐛 Add json encoding for tokenslib type
2025-05-21 10:17:37 +02:00
andrés gonzález
ddfd55261d :Books: Update design tokens doc (#6487) 2025-05-15 14:44:51 +02:00
Andrés Moya
5b8d1c1ca6 Merge branch 'hiru-update-tech-guide' 2025-05-14 13:23:38 +02:00
Andrés Moya
24e2948407 📚 Update code samples 2025-05-14 13:22:49 +02:00
Andrés Moya
c569c71306 📚 Update Tech Guide about abstraction levels 2025-05-14 13:22:38 +02:00
14 changed files with 86 additions and 23 deletions

View File

@@ -1,6 +1,25 @@
# CHANGELOG
## 2.7.0 (Unreleased)
## 2.7.2 (Unreleased)
### :bug: Bugs fixed
- Update plugins runtime [Github #6604](https://github.com/penpot/penpot/pull/6604)
- Backport from develop a minor fix that enables import of files
generated by penpot library [Github #6614](https://github.com/penpot/penpot/pull/6614)
- Fix copy in error message [GitHub #6615](https://github.com/penpot/penpot/pull/6615)
- Fix url on invitation link [Taiga #11284](https://tree.taiga.io/project/penpot/issue/11284)
## 2.7.1
### :bug: Bugs fixed
- Fix incorrect handling of strokes with images on importing files
- Fix tokens disappearing after manual additions [Taiga #11063](https://tree.taiga.io/project/penpot/issue/11063)
## 2.7.0
### :rocket: Epics and highlights
@@ -21,6 +40,7 @@
### :bug: Bugs fixed
- Fix "at" icon to match all icons on app [Taiga #11136](https://tree.taiga.io/project/penpot/issue/11136)
- Fix problem in viewer with the back button [Taiga #10907](https://tree.taiga.io/project/penpot/issue/10907)
- Fix resize bar background on tokens panel [Taiga #10811](https://tree.taiga.io/project/penpot/issue/10811)
- Fix shortcut for history version panel [Taiga #11006](https://tree.taiga.io/project/penpot/issue/11006)

View File

@@ -13,7 +13,7 @@ This will automatically include {{requested-by|abbreviate:25}} in the team, so t
Click the link below to provide team access:
{{ public-uri }}/#/dashboard/members?team-id{{team-id}}&invite-email={{requested-by-email|urlescape}}
{{ public-uri }}/#/dashboard/members?team-id={{team-id}}&invite-email={{requested-by-email|urlescape}}

View File

@@ -73,7 +73,7 @@
[:size ::sm/int]
[:content-type :string]
[:bucket [::sm/one-of {:format :string} sto/valid-buckets]]
[:hash :string]])
[:hash {:optional true} :string]])
(def ^:private schema:file-thumbnail
[:map {:title "FileThumbnail"}
@@ -821,13 +821,14 @@
:expected-size (:size object)
:found-size (sto/get-size content)))
(when (not= (:hash object) (sto/get-hash content))
(ex/raise :type :validation
:code :inconsistent-penpot-file
:hint "found corrupted storage object: hash does not match"
:path path
:expected-hash (:hash object)
:found-hash (sto/get-hash content)))
(when-let [hash (get object :hash)]
(when (not= hash (sto/get-hash content))
(ex/raise :type :validation
:code :inconsistent-penpot-file
:hint "found corrupted storage object: hash does not match"
:path path
:expected-hash (:hash object)
:found-hash (sto/get-hash content))))
(let [params (-> object
(dissoc :id :size)

View File

@@ -28,7 +28,7 @@
integrant/integrant {:mvn/version "0.13.1"}
funcool/tubax {:mvn/version "2021.05.20-0"}
funcool/cuerdas {:mvn/version "2023.11.09-407"}
funcool/cuerdas {:mvn/version "2025.05.26-411"}
funcool/promesa
{:git/sha "0c5ed6ad033515a2df4b55addea044f60e9653d0"
:git/url "https://github.com/funcool/promesa"}

View File

@@ -626,6 +626,9 @@
(map? (:fill-image form))
(update-in [:fill-image :id] lookup-index)
(map? (:stroke-image form))
(update-in [:stroke-image :id] lookup-index)
;; This covers old shapes and the new :fills.
(uuid? (:fill-color-ref-file form))
(update :fill-color-ref-file lookup-index)

View File

@@ -72,7 +72,7 @@
<div class="pre-footer">
<a href="https://github.com/penpot/penpot/blob/main/docs/{{ page.inputPath }}">Edit this page on GitHub</a>
&nbsp;or ask a&nbsp;
<a href="https://github.com/penpot/penpot/issues/new/choose">question</a>.
<a href="https://penpot.app/talk-to-us" target="_blank">question</a>.
</div>
<footer class="footer">
<div class="footer-inside">

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -57,5 +57,5 @@ eleventyNavigation:
<div class="contact-block">
<h2>Contact us</h2>
<p>Write us at <a href="mailto:support@penpot.app" target="_blank">support@penpot.app</a> or join our <a href="https://community.penpot.app/" target="_blank">community</a>.</p>
<p>Need help? <a href="https://penpot.app/talk-to-us" target="_blank">Talk to us</a> or join our <a href="https://community.penpot.app/" target="_blank">community</a>.</p>
</div>

View File

@@ -285,11 +285,12 @@ title: 10· Design Tokens
<p>When a token set is selected, the tokens within the selected set are displayed on the panel below.</p>
<h3 id="design-tokens-sets-delete">Deleting and Renaming a Token Set</h3>
<p>Token sets can be renamed or deleted by right-clicking on the token set and:</p>
<h3 id="design-tokens-sets-edit">Deleting, Duplicating and Renaming a Token Set</h3>
<p>Right-click a token set to perform these quick actions:</p>
<ol>
<li>Selecting <strong>Rename</strong>, entering a new name, and hitting Enter.</li>
<li>Selecting <strong>Delete</strong>.</li>
<li><strong>Rename</strong>: Give the set a new name and press Enter.</li>
<li><strong>Duplicate</strong>: Make a copy of the set.</li>
<li><strong>Delete</strong>: Remove the set permanently.</li>
</ol>
<figure>
<img src="/img/design-tokens/14-tokens-sets-edit.webp" alt="Tokens sets edit" />
@@ -299,10 +300,10 @@ title: 10· Design Tokens
<p>Once you have created a token set, you can start creating tokens within that token set. To do so, simply select the token set and create a new token.</p>
<p class="advice">If a token with the same name already exists in another set, a new token can still be created in the current set.</p>
<h3 id="design-tokens-groups">Creating Token Groups</h3>
<p>You can create a token set group by simply naming your token sets to have a folder path. For example, you can create a <strong><i>Light</i></strong> group with a <strong><i>Global</i></strong> set and a <strong><i>Colors</i></strong> set using: <code class="language-js">Light/Global</code>, <code class="language-js">Light/Colors</code>. </p>
<h3 id="design-tokens-groups">Creating Token Set Folders</h3>
<p>To group token sets just use folder-style names. For example, naming your sets <code class="language-js">Light/Global</code> and <code class="language-js">Light/Colors</code> will create a folder called <strong><i>Light</i></strong> with two sets inside it: <strong><i>Global</i></strong> and <strong><i>Colors</i></strong>.</p>
<figure>
<img src="/img/design-tokens/15-tokens-sets-group.webp" alt="Tokens sets group" />
<img src="/img/design-tokens/15-tokens-sets-group.webp" alt="Tokens sets folder" />
</figure>
<h2 id="design-tokens-themes">Token Themes</h2>

View File

@@ -1 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="14.499" height="14.507" viewBox="700.734 827.762 14.499 14.507"><path d="M707.948 827.762c-.193 0-.386.007-.578.022-2.311.181-4.574 1.452-5.839 3.982-1.686 3.372-.52 6.821 1.835 8.787 2.354 1.966 5.955 2.497 8.974.233a.566.566 0 1 0-.68-.906c-2.611 1.959-5.563 1.478-7.568-.196-2.004-1.675-3.005-4.495-1.546-7.412 1.458-2.917 4.314-3.808 6.856-3.208 2.543.599 4.698 2.672 4.698 5.936v.667c0 .525-.176.847-.435 1.076-.258.23-.624.357-.998.357s-.741-.127-.999-.357c-.258-.229-.435-.551-.435-1.076v-3.334a.567.567 0 0 0-1.133 0v.215a3.215 3.215 0 0 0-2.1-.781 3.241 3.241 0 0 0-3.233 3.233 3.241 3.241 0 0 0 3.233 3.233 3.23 3.23 0 0 0 2.482-1.168c.122.199.267.377.433.525a2.63 2.63 0 0 0 1.752.643c.626 0 1.259-.206 1.751-.643.492-.437.815-1.115.815-1.923V835c0-3.773-2.586-6.336-5.572-7.04a7.405 7.405 0 0 0-1.713-.198ZM708 832.9c1.167 0 2.1.933 2.1 2.1a2.09 2.09 0 0 1-2.1 2.1 2.09 2.09 0 0 1-2.1-2.1c0-1.167.933-2.1 2.1-2.1Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" stroke-linecap="round" stroke-linejoin="round">
<path d="M10.667 5.333v3.334a2 2 0 1 0 4 0V8a6.667 6.667 0 1 0-2.614 5.293M10.667 8a2.667 2.667 0 1 1-5.334 0 2.667 2.667 0 0 1 5.334 0Z" />
</svg>

Before

Width:  |  Height:  |  Size: 982 B

After

Width:  |  Height:  |  Size: 282 B

View File

@@ -5086,7 +5086,8 @@ class zc extends HTMLElement {
"allow-modals",
"allow-popups",
"allow-popups-to-escape-sandbox",
"allow-storage-access-by-user-activation"
"allow-storage-access-by-user-activation",
"allow-same-origin"
), o && l.sandbox.add("allow-downloads"), l.addEventListener("load", () => {
var d;
(d = this.shadowRoot) == null || d.dispatchEvent(

View File

@@ -147,6 +147,7 @@
(swap! state* assoc :width width)))
[:div {:class (stl/css :palette-wrapper)
:id "palette-wrapper"
:style (calculate-palette-padding rulers?)
:data-testid "palette"}
(when-not workspace-read-only?

View File

@@ -4,6 +4,10 @@
//
// Copyright (c) KALEIDOS INC
@use "../ds/spacing.scss" as *;
@use "../ds/z-index.scss" as *;
@use "../ds/_sizes.scss" as *;
@import "refactor/common-refactor.scss";
.palette-wrapper {
@@ -12,6 +16,12 @@
left: 0;
bottom: 0;
padding-bottom: $s-4;
/** Aligns AI Chat button **/
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--sp-s);
}
.palettes {
@@ -164,3 +174,27 @@
padding-bottom: $s-8;
}
}
/** AI Chat button styles **/
.help-btn {
z-index: var(--z-index-panels);
flex-shrink: 0;
@extend .button-secondary;
inline-size: $sz-40;
block-size: $sz-40;
border-radius: $br-circle;
border: none;
&.selected {
@extend .button-icon-selected;
}
&:hover {
border: none;
}
}
.icon-help {
@extend .button-icon;
stroke: var(--icon-foreground);
inline-size: var(--sp-xxl);
block-size: var(--sp-xxl);
}

View File

@@ -6873,7 +6873,7 @@ msgstr "Import Error: Invalid token data in JSON."
#: src/app/main/ui/workspace/tokens/errors.cljs:16
msgid "workspace.token.invalid-json-token-name"
msgstr "Import Error: Invalid token name in in JSON."
msgstr "Import Error: Invalid token name in JSON."
#: src/app/main/ui/workspace/tokens/errors.cljs:18
msgid "workspace.token.invalid-json-token-name-detail"