From 920c6d4e7693a9040e82956e1e4ca93070043790 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Tue, 30 Jun 2026 16:26:49 +0200 Subject: [PATCH 01/24] :bug: Fix token tooltips on numeric-input, color and typography (#10480) --- .../workspace/get-file-token-tooltip.json | 382 ++++++++++++++++++ .../playwright/ui/specs/tokens/apply.spec.js | 374 ++++++++++++++++- .../ui/ds/controls/utilities/token_field.cljs | 28 +- .../options/menus/token_typography_row.cljs | 32 +- .../options/menus/token_typography_row.scss | 3 +- .../sidebar/options/rows/color_row.cljs | 56 ++- .../tokens/management/token_pill.cljs | 2 +- frontend/translations/en.po | 5 + frontend/translations/es.po | 4 + 9 files changed, 854 insertions(+), 32 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-file-token-tooltip.json diff --git a/frontend/playwright/data/workspace/get-file-token-tooltip.json b/frontend/playwright/data/workspace/get-file-token-tooltip.json new file mode 100644 index 0000000000..55a35d9d60 --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-token-tooltip.json @@ -0,0 +1,382 @@ +{ + "~:features": { + "~#set": [ + "design-tokens/v1", + "layout/grid", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "Tooltip check", + "~:revn": 36, + "~:modified-at": "~m1737542758402", + "~:vern": 0, + "~:id": "~uc7ce0794-0992-8105-8004-38f280443849", + "~:is-shared": false, + "~:version": 60, + "~:project-id": "~u0df61468-6cbf-8067-8005-6b453ce996d0", + "~:created-at": "~m1737536563847", + "~:data": { + "~:pages": [ + "~u4530574a-7a0a-807b-8008-0107b2c4628e" + ], + "~:pages-index": { + "~u4530574a-7a0a-807b-8008-0107b2c4628e": { + "~:id": "~u4530574a-7a0a-807b-8008-0107b2c4628e", + "~:name": "Page 1", + "~:objects": { + "~#penpot/objects-map/v2": { + "~u00000000-0000-0000-0000-000000000000": "[\"~#shape\",[\"^ \",\"~:y\",0,\"~:hide-fill-on-export\",false,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:name\",\"Root Frame\",\"~:width\",0.01,\"~:type\",\"~:frame\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",0.0,\"~:y\",0.0]],[\"^:\",[\"^ \",\"~:x\",0.01,\"~:y\",0.0]],[\"^:\",[\"^ \",\"~:x\",0.01,\"~:y\",0.01]],[\"^:\",[\"^ \",\"~:x\",0.0,\"~:y\",0.01]]],\"~:r2\",0,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^3\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:page-id\",\"~u4530574a-7a0a-807b-8008-0107b2c4628e\",\"~:r3\",0,\"~:r1\",0,\"~:id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",0,\"~:proportion\",1.0,\"~:r4\",0,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",0,\"~:y\",0,\"^6\",0.01,\"~:height\",0.01,\"~:x1\",0,\"~:y1\",0,\"~:x2\",0.01,\"~:y2\",0.01]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#FFFFFF\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^I\",0.01,\"~:flip-y\",null,\"~:shapes\",[\"~ua7df6ab8-bee5-802f-8008-010d9ff3da26\",\"~uf2256046-b127-808e-8008-411c4cba63d8\",\"~u1de8c150-538b-80b2-8008-40356208fc39\",\"~uf2256046-b127-808e-8008-411c4cba63d9\",\"~u1de8c150-538b-80b2-8008-4036773cc8d0\",\"~u886f2846-a2c5-808d-8008-4115e86119e9\",\"~u1de8c150-538b-80b2-8008-403b5150a59b\",\"~u886f2846-a2c5-808d-8008-4115e86119ea\",\"~u20f9ccb0-68e2-80d9-8008-413fa842a6b5\",\"~u20f9ccb0-68e2-80d9-8008-413fb1f2ef51\"]]]", + "~u1de8c150-538b-80b2-8008-403b5150a59b": "[\"~#shape\",[\"^ \",\"~:y\",419,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:hide-in-viewer\",false,\"~:name\",\"Deleted token rect\",\"~:width\",162,\"~:type\",\"~:rect\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",-147,\"~:y\",419]],[\"^<\",[\"^ \",\"~:x\",15,\"~:y\",419]],[\"^<\",[\"^ \",\"~:x\",15,\"~:y\",565]],[\"^<\",[\"^ \",\"~:x\",-147,\"~:y\",565]]],\"~:r2\",20,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:r3\",20,\"~:r1\",20,\"~:id\",\"~u1de8c150-538b-80b2-8008-403b5150a59b\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"blue\",\"^A\",\"deleted\",\"^=\",\"deleted\",\"^@\",\"deleted\",\"~:r4\",\"deleted\"],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",-147,\"~:proportion\",1,\"^F\",20,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",-147,\"~:y\",419,\"^8\",162,\"~:height\",146,\"~:x1\",-147,\"~:y1\",419,\"~:x2\",15,\"~:y2\",565]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#0a20bf\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^L\",146,\"~:flip-y\",null]]", + "~u20f9ccb0-68e2-80d9-8008-413fa842a6b5": "[\"~#shape\",[\"^ \",\"~:y\",369,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:hide-in-viewer\",false,\"~:name\",\"Rectangle with token\",\"~:width\",274.99999999999994,\"~:type\",\"~:rect\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",-536,\"~:y\",369]],[\"^<\",[\"^ \",\"~:x\",-261.00000000000006,\"~:y\",369]],[\"^<\",[\"^ \",\"~:x\",-261.00000000000006,\"~:y\",565]],[\"^<\",[\"^ \",\"~:x\",-536,\"~:y\",565]]],\"~:r2\",50,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:r3\",50,\"~:r1\",50,\"~:id\",\"~u20f9ccb0-68e2-80d9-8008-413fa842a6b5\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"out-ref\",\"^A\",\"base-50\",\"^=\",\"base-50\",\"^@\",\"base-50\",\"~:r4\",\"base-50\"],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",-536,\"~:proportion\",1,\"^F\",50,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",-536,\"~:y\",369,\"^8\",274.99999999999994,\"~:height\",196,\"~:x1\",-536,\"~:y1\",369,\"~:x2\",-261.00000000000006,\"~:y2\",565]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#da1fea\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^L\",196,\"~:flip-y\",null]]", + "~u1de8c150-538b-80b2-8008-4036773cc8d0": "[\"~#shape\",[\"^ \",\"~:y\",588,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:content\",[\"^ \",\"~:type\",\"root\",\"~:children\",[[\"^ \",\"^7\",\"paragraph-set\",\"^8\",[[\"^ \",\"~:line-height\",\"1.2\",\"~:font-style\",\"normal\",\"^8\",[[\"^ \",\"^9\",\"1.2\",\"^:\",\"normal\",\"~:text-transform\",\"none\",\"~:text-align\",\"left\",\"~:font-id\",\"gfont-alegreya-sans-sc\",\"~:font-size\",\"23\",\"~:font-weight\",\"400\",\"~:text-direction\",\"ltr\",\"~:font-variant-id\",\"regular\",\"~:text-decoration\",\"none\",\"~:letter-spacing\",\"0\",\"~:fills\",[[\"^ \",\"~:fill-color\",\"#000000\",\"~:fill-opacity\",1]],\"~:font-family\",\"Alegreya Sans SC\",\"~:text\",\"Text with deleted token\"]],\"^;\",\"none\",\"^<\",\"left\",\"^=\",\"gfont-alegreya-sans-sc\",\"~:key\",\"fu3vh\",\"^>\",\"23\",\"^?\",\"400\",\"^@\",\"ltr\",\"^7\",\"paragraph\",\"^A\",\"regular\",\"^B\",\"none\",\"^C\",\"0\",\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"^G\",\"Alegreya Sans SC\"]]]]],\"~:hide-in-viewer\",false,\"~:name\",\"Text with deleted token\",\"~:width\",198,\"^7\",\"^H\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",-161,\"~:y\",588]],[\"^N\",[\"^ \",\"~:x\",37,\"~:y\",588]],[\"^N\",[\"^ \",\"~:x\",37,\"~:y\",641]],[\"^N\",[\"^ \",\"~:x\",-161,\"~:y\",641]]],\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:id\",\"~u1de8c150-538b-80b2-8008-4036773cc8d0\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:typography\",\"deleted-typo\"],\"~:position-data\",[[\"~#rect\",[\"^ \",\"~:y\",613,\"^:\",\"normal\",\"^;\",\"none\",\"^>\",\"23px\",\"^?\",\"400\",\"~:y1\",2,\"^L\",176.203125,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",-161,\"~:x1\",0,\"~:y2\",25,\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"~:x2\",176.203125,\"~:direction\",\"ltr\",\"^G\",\"\\\"Alegreya Sans SC\\\"\",\"~:height\",23,\"^H\",\"Text with deleted \"]],[\"^U\",[\"^ \",\"~:y\",640.59375,\"^:\",\"normal\",\"^;\",\"none\",\"^>\",\"23px\",\"^?\",\"400\",\"^V\",29.59375,\"^L\",56.9375,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",-161,\"^W\",0,\"^X\",52.59375,\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"^Y\",56.9375,\"^Z\",\"ltr\",\"^G\",\"\\\"Alegreya Sans SC\\\"\",\"^[\",23,\"^H\",\"token\"]]],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:x\",-161,\"~:selrect\",[\"^U\",[\"^ \",\"~:x\",-161,\"~:y\",588,\"^L\",198,\"^[\",53,\"^W\",-161,\"^V\",588,\"^Y\",37,\"^X\",641]],\"~:flip-x\",null,\"^[\",53,\"~:flip-y\",null]]", + "~u20f9ccb0-68e2-80d9-8008-413fb1f2ef51": "[\"~#shape\",[\"^ \",\"~:y\",609,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:content\",[\"^ \",\"~:type\",\"root\",\"~:children\",[[\"^ \",\"^7\",\"paragraph-set\",\"^8\",[[\"^ \",\"~:line-height\",\"1.2\",\"~:font-style\",\"normal\",\"^8\",[[\"^ \",\"^9\",\"1.2\",\"^:\",\"normal\",\"~:text-transform\",\"none\",\"~:text-align\",\"left\",\"~:font-id\",\"gfont-arizonia\",\"~:font-size\",\"23\",\"~:font-weight\",\"400\",\"~:text-direction\",\"ltr\",\"~:font-variant-id\",\"regular\",\"~:text-decoration\",\"none\",\"~:letter-spacing\",\"0\",\"~:fills\",[[\"^ \",\"~:fill-color\",\"#da1fea\",\"~:fill-opacity\",1]],\"~:font-family\",\"Arizonia\",\"~:text\",\"Text with token\"]],\"^;\",\"none\",\"^<\",\"left\",\"^=\",\"gfont-arizonia\",\"~:key\",\"fu3vh\",\"^>\",\"23\",\"^?\",\"400\",\"^@\",\"ltr\",\"^7\",\"paragraph\",\"^A\",\"regular\",\"^B\",\"none\",\"^C\",\"0\",\"^D\",[[\"^ \",\"^E\",\"#da1fea\",\"^F\",1]],\"^G\",\"Arizonia\"]]]]],\"~:hide-in-viewer\",false,\"~:name\",\"Text with token\",\"~:width\",198,\"^7\",\"^H\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",-516,\"~:y\",609]],[\"^N\",[\"^ \",\"~:x\",-318,\"~:y\",609]],[\"^N\",[\"^ \",\"~:x\",-318,\"~:y\",662]],[\"^N\",[\"^ \",\"~:x\",-516,\"~:y\",662]]],\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:id\",\"~u20f9ccb0-68e2-80d9-8008-413fb1f2ef51\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:typography\",\"out-typo\",\"~:fill\",\"out-ref\"],\"~:position-data\",[[\"~#rect\",[\"^ \",\"~:y\",637,\"^:\",\"normal\",\"^;\",\"none\",\"^>\",\"23px\",\"^?\",\"400\",\"~:y1\",-1,\"^L\",117.453125,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",-516,\"~:x1\",0,\"~:y2\",28,\"^D\",[[\"^ \",\"^E\",\"#da1fea\",\"^F\",1]],\"~:x2\",117.453125,\"~:direction\",\"ltr\",\"^G\",\"Arizonia\",\"~:height\",29,\"^H\",\"Text with token\"]]],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",-516,\"~:selrect\",[\"^V\",[\"^ \",\"~:x\",-516,\"~:y\",609,\"^L\",198,\"^10\",53,\"^X\",-516,\"^W\",609,\"^Z\",-318,\"^Y\",662]],\"~:flip-x\",null,\"^10\",53,\"~:flip-y\",null]]", + "~uf2256046-b127-808e-8008-411c4cba63d8": "[\"~#shape\",[\"^ \",\"~:y\",267,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:hide-in-viewer\",false,\"~:name\",\"Rectangle with not active reference\",\"~:width\",287,\"~:type\",\"~:rect\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",390,\"~:y\",267]],[\"^<\",[\"^ \",\"~:x\",677,\"~:y\",267]],[\"^<\",[\"^ \",\"~:x\",677,\"~:y\",579]],[\"^<\",[\"^ \",\"~:x\",390,\"~:y\",579]]],\"~:r2\",50,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:page-id\",\"~u4530574a-7a0a-807b-8008-0107b2c4628e\",\"~:r3\",50,\"~:r1\",50,\"~:id\",\"~uf2256046-b127-808e-8008-411c4cba63d8\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"in-color\",\"^=\",\"in-br\",\"^A\",\"in-br\",\"^B\",\"in-br\",\"~:r4\",\"in-br\"],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",390,\"~:proportion\",1,\"^G\",50,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",390,\"~:y\",267,\"^8\",287,\"~:height\",312,\"~:x1\",390,\"~:y1\",267,\"~:x2\",677,\"~:y2\",579]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#da1fea\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^M\",312,\"~:flip-y\",null]]", + "~uf2256046-b127-808e-8008-411c4cba63d9": "[\"~#shape\",[\"^ \",\"~:y\",602,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:content\",[\"^ \",\"~:type\",\"root\",\"~:children\",[[\"^ \",\"^7\",\"paragraph-set\",\"^8\",[[\"^ \",\"~:line-height\",\"1.2\",\"^8\",[[\"^ \",\"^9\",\"1.2\",\"~:text-transform\",\"none\",\"~:text-align\",\"left\",\"~:font-id\",\"gfont-arizonia\",\"~:font-size\",\"14\",\"~:font-weight\",\"200\",\"~:text-direction\",\"ltr\",\"~:font-variant-id\",\"regular\",\"~:weight\",\"200\",\"~:text-decoration\",\"none\",\"~:letter-spacing\",\"0\",\"~:fills\",[[\"^ \",\"~:fill-color\",\"#da1fea\",\"~:fill-opacity\",1]],\"~:font-family\",\"Arizonia\",\"~:text\",\"Text with not active reference\"]],\"^:\",\"none\",\"^;\",\"left\",\"^<\",\"gfont-arizonia\",\"~:key\",\"d22fo\",\"^=\",\"14\",\"^>\",\"200\",\"^?\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"200\",\"^B\",\"none\",\"^C\",\"0\",\"^D\",[[\"^ \",\"^E\",\"#da1fea\",\"^F\",1]],\"^G\",\"Arizonia\"]]]]],\"~:hide-in-viewer\",false,\"~:name\",\"Text with not active reference\",\"~:width\",139,\"^7\",\"^H\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",479,\"~:y\",602]],[\"^N\",[\"^ \",\"~:x\",618,\"~:y\",602]],[\"^N\",[\"^ \",\"~:x\",618,\"~:y\",630]],[\"^N\",[\"^ \",\"~:x\",479,\"~:y\",630]]],\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:id\",\"~uf2256046-b127-808e-8008-411c4cba63d9\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"in-color\",\"~:typography\",\"in-typo\"],\"~:position-data\",[[\"~#rect\",[\"^ \",\"~:y\",619,\"~:font-style\",\"normal\",\"^:\",\"none\",\"^=\",\"14px\",\"^>\",\"400\",\"~:y1\",-1,\"^L\",97.46875,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",479,\"~:x1\",0,\"~:y2\",17,\"^D\",[[\"^ \",\"^E\",\"#da1fea\",\"^F\",1]],\"~:x2\",97.46875,\"~:direction\",\"ltr\",\"^G\",\"Arizonia\",\"~:height\",18,\"^H\",\"Text with not active \"]],[\"^V\",[\"^ \",\"~:y\",635.796875,\"^W\",\"normal\",\"^:\",\"none\",\"^=\",\"14px\",\"^>\",\"400\",\"^X\",15.796875,\"^L\",42.8125,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",479,\"^Y\",0,\"^Z\",33.796875,\"^D\",[[\"^ \",\"^E\",\"#da1fea\",\"^F\",1]],\"^[\",42.8125,\"^10\",\"ltr\",\"^G\",\"Arizonia\",\"^11\",18,\"^H\",\"reference\"]]],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:x\",479,\"~:selrect\",[\"^V\",[\"^ \",\"~:x\",479,\"~:y\",602,\"^L\",139,\"^11\",28,\"^Y\",479,\"^X\",602,\"^[\",618,\"^Z\",630]],\"~:flip-x\",null,\"^11\",28,\"~:flip-y\",null]]", + "~u1de8c150-538b-80b2-8008-40356208fc39": "[\"~#shape\",[\"^ \",\"~:y\",609,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:content\",[\"^ \",\"~:type\",\"root\",\"~:children\",[[\"^ \",\"^7\",\"paragraph-set\",\"^8\",[[\"^ \",\"~:line-height\",\"1.2\",\"^8\",[[\"^ \",\"^9\",\"1.2\",\"~:text-transform\",\"none\",\"~:text-align\",\"left\",\"~:font-id\",\"gfont-ar-one-sans\",\"~:font-size\",\"14\",\"~:font-weight\",\"200\",\"~:text-direction\",\"ltr\",\"~:font-variant-id\",\"regular\",\"~:weight\",\"200\",\"~:text-decoration\",\"none\",\"~:letter-spacing\",\"0\",\"~:fills\",[[\"^ \",\"~:fill-color\",\"#ef0c0c\",\"~:fill-opacity\",1]],\"~:font-family\",\"AR One Sans\",\"~:text\",\"Text with not active token\"]],\"^:\",\"none\",\"^;\",\"left\",\"^<\",\"gfont-ar-one-sans\",\"~:key\",\"d22fo\",\"^=\",\"14\",\"^>\",\"200\",\"^?\",\"ltr\",\"^7\",\"paragraph\",\"^@\",\"regular\",\"^A\",\"200\",\"^B\",\"none\",\"^C\",\"0\",\"^D\",[[\"^ \",\"^E\",\"#ef0c0c\",\"^F\",1]],\"^G\",\"AR One Sans\"]]]]],\"~:hide-in-viewer\",false,\"~:name\",\"Text with not active token\",\"~:width\",139,\"^7\",\"^H\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",812,\"~:y\",609]],[\"^N\",[\"^ \",\"~:x\",951,\"~:y\",609]],[\"^N\",[\"^ \",\"~:x\",951,\"~:y\",637]],[\"^N\",[\"^ \",\"~:x\",812,\"~:y\",637]]],\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:id\",\"~u1de8c150-538b-80b2-8008-40356208fc39\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"red\",\"~:typography\",\"typo-2\"],\"~:position-data\",[[\"~#rect\",[\"^ \",\"~:y\",626,\"~:font-style\",\"normal\",\"^:\",\"none\",\"^=\",\"14px\",\"^>\",\"400\",\"~:y1\",-2,\"^L\",134.625,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",812,\"~:x1\",0,\"~:y2\",17,\"^D\",[[\"^ \",\"^E\",\"#ef0c0c\",\"^F\",1]],\"~:x2\",134.625,\"~:direction\",\"ltr\",\"^G\",\"\\\"AR One Sans\\\"\",\"~:height\",19,\"^H\",\"Text with not active \"]],[\"^V\",[\"^ \",\"~:y\",642.796875,\"^W\",\"normal\",\"^:\",\"none\",\"^=\",\"14px\",\"^>\",\"400\",\"^X\",14.796875,\"^L\",37.40625,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",812,\"^Y\",0,\"^Z\",33.796875,\"^D\",[[\"^ \",\"^E\",\"#ef0c0c\",\"^F\",1]],\"^[\",37.40625,\"^10\",\"ltr\",\"^G\",\"\\\"AR One Sans\\\"\",\"^11\",19,\"^H\",\"token\"]]],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:x\",812,\"~:selrect\",[\"^V\",[\"^ \",\"~:x\",812,\"~:y\",609,\"^L\",139,\"^11\",28,\"^Y\",812,\"^X\",609,\"^[\",951,\"^Z\",637]],\"~:flip-x\",null,\"^11\",28,\"~:flip-y\",null]]", + "~u886f2846-a2c5-808d-8008-4115e86119ea": "[\"~#shape\",[\"^ \",\"~:y\",399,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:hide-in-viewer\",false,\"~:name\",\"Rectangle with deleted reference\",\"~:width\",162,\"~:type\",\"~:rect\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",193,\"~:y\",399]],[\"^<\",[\"^ \",\"~:x\",355,\"~:y\",399]],[\"^<\",[\"^ \",\"~:x\",355,\"~:y\",545]],[\"^<\",[\"^ \",\"~:x\",193,\"~:y\",545]]],\"~:r2\",20,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:r3\",20,\"~:r1\",20,\"~:id\",\"~u886f2846-a2c5-808d-8008-4115e86119ea\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"ref-grfeen\",\"^A\",\"ref-1\",\"^=\",\"ref-1\",\"^@\",\"ref-1\",\"~:r4\",\"ref-1\"],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",193,\"~:proportion\",1,\"^F\",20,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",193,\"~:y\",399,\"^8\",162,\"~:height\",146,\"~:x1\",193,\"~:y1\",399,\"~:x2\",355,\"~:y2\",545]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#0a20bf\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^L\",146,\"~:flip-y\",null]]", + "~u886f2846-a2c5-808d-8008-4115e86119e9": "[\"~#shape\",[\"^ \",\"~:y\",586,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:content\",[\"^ \",\"~:type\",\"root\",\"~:children\",[[\"^ \",\"^7\",\"paragraph-set\",\"^8\",[[\"^ \",\"~:line-height\",\"1.2\",\"~:font-style\",\"normal\",\"^8\",[[\"^ \",\"^9\",\"1.2\",\"^:\",\"normal\",\"~:text-transform\",\"none\",\"~:text-align\",\"left\",\"~:font-id\",\"gfont-adlam-display\",\"~:font-size\",\"23\",\"~:font-weight\",\"400\",\"~:text-direction\",\"ltr\",\"~:font-variant-id\",\"regular\",\"~:text-decoration\",\"none\",\"~:letter-spacing\",\"0\",\"~:fills\",[[\"^ \",\"~:fill-color\",\"#000000\",\"~:fill-opacity\",1]],\"~:font-family\",\"ADLaM Display\",\"~:text\",\"Text with deleted reference\"]],\"^;\",\"none\",\"^<\",\"left\",\"^=\",\"gfont-adlam-display\",\"~:key\",\"fu3vh\",\"^>\",\"23\",\"^?\",\"400\",\"^@\",\"ltr\",\"^7\",\"paragraph\",\"^A\",\"regular\",\"^B\",\"none\",\"^C\",\"0\",\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"^G\",\"ADLaM Display\"]]]]],\"~:hide-in-viewer\",false,\"~:name\",\"Text with deleted reference\",\"~:width\",137,\"^7\",\"^H\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",198,\"~:y\",586]],[\"^N\",[\"^ \",\"~:x\",335,\"~:y\",586]],[\"^N\",[\"^ \",\"~:x\",335,\"~:y\",683]],[\"^N\",[\"^ \",\"~:x\",198,\"~:y\",683]]],\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:id\",\"~u886f2846-a2c5-808d-8008-4115e86119e9\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"ref-grfeen\",\"~:typography\",\"ref-typo\"],\"~:position-data\",[[\"~#rect\",[\"^ \",\"~:y\",614,\"^:\",\"normal\",\"^;\",\"none\",\"^>\",\"23px\",\"^?\",\"400\",\"~:y1\",-2,\"^L\",107.921875,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",198,\"~:x1\",0,\"~:y2\",28,\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"~:x2\",107.921875,\"~:direction\",\"ltr\",\"^G\",\"\\\"ADLaM Display\\\"\",\"~:height\",30,\"^H\",\"Text with \"]],[\"^V\",[\"^ \",\"~:y\",641.59375,\"^:\",\"normal\",\"^;\",\"none\",\"^>\",\"23px\",\"^?\",\"400\",\"^W\",25.59375,\"^L\",88.890625,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",198,\"^X\",0,\"^Y\",55.59375,\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"^Z\",88.890625,\"^[\",\"ltr\",\"^G\",\"\\\"ADLaM Display\\\"\",\"^10\",30,\"^H\",\"deleted \"]],[\"^V\",[\"^ \",\"~:y\",669.1875,\"^:\",\"normal\",\"^;\",\"none\",\"^>\",\"23px\",\"^?\",\"400\",\"^W\",53.1875,\"^L\",103.46875,\"^B\",\"none\",\"^C\",\"normal\",\"~:x\",198,\"^X\",0,\"^Y\",83.1875,\"^D\",[[\"^ \",\"^E\",\"#000000\",\"^F\",1]],\"^Z\",103.46875,\"^[\",\"ltr\",\"^G\",\"\\\"ADLaM Display\\\"\",\"^10\",30,\"^H\",\"reference\"]]],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:x\",198,\"~:selrect\",[\"^V\",[\"^ \",\"~:x\",198,\"~:y\",586,\"^L\",137,\"^10\",97,\"^X\",198,\"^W\",586,\"^Z\",335,\"^Y\",683]],\"~:flip-x\",null,\"^10\",97,\"~:flip-y\",null]]", + "~ua7df6ab8-bee5-802f-8008-010d9ff3da26": "[\"~#shape\",[\"^ \",\"~:y\",274,\"~:transform\",[\"~#matrix\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:rotation\",0,\"~:grow-type\",\"~:fixed\",\"~:hide-in-viewer\",false,\"~:name\",\"Rectangle with not active token\",\"~:width\",287,\"~:type\",\"~:rect\",\"~:points\",[[\"~#point\",[\"^ \",\"~:x\",723,\"~:y\",274]],[\"^<\",[\"^ \",\"~:x\",1010,\"~:y\",274]],[\"^<\",[\"^ \",\"~:x\",1010,\"~:y\",586]],[\"^<\",[\"^ \",\"~:x\",723,\"~:y\",586]]],\"~:r2\",100,\"~:proportion-lock\",false,\"~:transform-inverse\",[\"^2\",[\"^ \",\"~:a\",1.0,\"~:b\",0.0,\"~:c\",0.0,\"~:d\",1.0,\"~:e\",0.0,\"~:f\",0.0]],\"~:page-id\",\"~u4530574a-7a0a-807b-8008-0107b2c4628e\",\"~:r3\",100,\"~:r1\",100,\"~:id\",\"~ua7df6ab8-bee5-802f-8008-010d9ff3da26\",\"~:parent-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:applied-tokens\",[\"^ \",\"~:fill\",\"red\",\"^B\",\"border-radius\",\"^=\",\"border-radius\",\"^A\",\"border-radius\",\"~:r4\",\"border-radius\"],\"~:frame-id\",\"~u00000000-0000-0000-0000-000000000000\",\"~:strokes\",[],\"~:x\",723,\"~:proportion\",1,\"^G\",100,\"~:selrect\",[\"~#rect\",[\"^ \",\"~:x\",723,\"~:y\",274,\"^8\",287,\"~:height\",312,\"~:x1\",723,\"~:y1\",274,\"~:x2\",1010,\"~:y2\",586]],\"~:fills\",[[\"^ \",\"~:fill-color\",\"#ef0c0c\",\"~:fill-opacity\",1]],\"~:flip-x\",null,\"^M\",312,\"~:flip-y\",null]]" + } + } + } + }, + "~:tokens-lib": { + "~#penpot/tokens-lib": { + "~:sets": { + "~#ordered-map": [ + [ + "S-Global", + { + "~#penpot/token-set": { + "~:id": "~uf71719b3-63a1-8157-8008-40346917de8c", + "~:name": "Global", + "~:description": "", + "~:modified-at": "~m1782813028640", + "~:tokens": { + "~#ordered-map": [ + [ + "base-50", + { + "~#penpot/token": { + "~:id": "~uf71719b3-63a1-8157-8008-40346917de87", + "~:name": "base-50", + "~:type": "~:border-radius", + "~:value": "50", + "~:description": "", + "~:modified-at": "~m1782742859871" + } + } + ], + [ + "out-ref", + { + "~#penpot/token": { + "~:id": "~uf2256046-b127-808e-8008-411bec9b1109", + "~:name": "out-ref", + "~:type": "~:color", + "~:value": "rgb(218, 31, 234)", + "~:description": "", + "~:modified-at": "~m1782803549804" + } + } + ], + [ + "out-typo", + { + "~#penpot/token": { + "~:id": "~uf2256046-b127-808e-8008-411bf90df57e", + "~:name": "out-typo", + "~:type": "~:typography", + "~:value": { + "~:font-family": [ + "Arizonia" + ] + }, + "~:description": "", + "~:modified-at": "~m1782803562551" + } + } + ] + ] + } + } + } + ], + [ + "G-Mode", + { + "~#ordered-map": [ + [ + "S-Dark", + { + "~#penpot/token-set": { + "~:id": "~uf71719b3-63a1-8157-8008-40346917de8d", + "~:name": "Mode/Dark", + "~:description": "", + "~:modified-at": "~m1782803647245", + "~:tokens": { + "~#ordered-map": [ + [ + "red", + { + "~#penpot/token": { + "~:id": "~uf71719b3-63a1-8157-8008-40346917de88", + "~:name": "red", + "~:type": "~:color", + "~:value": "#ef0c0c", + "~:description": "", + "~:modified-at": "~m1782742859871" + } + } + ], + [ + "ref-grfeen", + { + "~#penpot/token": { + "~:id": "~u886f2846-a2c5-808d-8008-4115e5fdae2e", + "~:name": "ref-grfeen", + "~:type": "~:color", + "~:value": "{green}", + "~:description": "", + "~:modified-at": "~m1782801970166" + } + } + ], + [ + "ref-typo", + { + "~#penpot/token": { + "~:id": "~u886f2846-a2c5-808d-8008-41160c4641f4", + "~:name": "ref-typo", + "~:type": "~:typography", + "~:value": "{typo1}", + "~:description": "", + "~:modified-at": "~m1782802009369" + } + } + ], + [ + "ref-1", + { + "~#penpot/token": { + "~:id": "~u886f2846-a2c5-808d-8008-411628261dc7", + "~:name": "ref-1", + "~:type": "~:border-radius", + "~:value": "{b1}", + "~:description": "", + "~:modified-at": "~m1782802037912" + } + } + ], + [ + "in-br", + { + "~#penpot/token": { + "~:id": "~uf2256046-b127-808e-8008-411c0aced089", + "~:name": "in-br", + "~:type": "~:border-radius", + "~:value": "{base-50}", + "~:description": "", + "~:modified-at": "~m1782803580731" + } + } + ], + [ + "in-color", + { + "~#penpot/token": { + "~:id": "~uf2256046-b127-808e-8008-411c263c999b", + "~:name": "in-color", + "~:type": "~:color", + "~:value": "{out-ref}", + "~:description": "", + "~:modified-at": "~m1782803608818" + } + } + ], + [ + "in-typo", + { + "~#penpot/token": { + "~:id": "~uf2256046-b127-808e-8008-411c472f33d3", + "~:name": "in-typo", + "~:type": "~:typography", + "~:value": "{out-typo}", + "~:description": "", + "~:modified-at": "~m1782803642556" + } + } + ] + ] + } + } + } + ], + [ + "S-Light", + { + "~#penpot/token-set": { + "~:id": "~uf71719b3-63a1-8157-8008-40346917de8e", + "~:name": "Mode/Light", + "~:description": "", + "~:modified-at": "~m1782812999332", + "~:tokens": { + "~#ordered-map": [ + [ + "red", + { + "~#penpot/token": { + "~:id": "~uf71719b3-63a1-8157-8008-40346917de89", + "~:name": "red", + "~:type": "~:color", + "~:value": "#ec9090", + "~:description": "", + "~:modified-at": "~m1782742859871" + } + } + ], + [ + "typo-2", + { + "~#penpot/token": { + "~:id": "~u1de8c150-538b-80b2-8008-40357ed6d13a", + "~:name": "typo-2", + "~:type": "~:typography", + "~:value": { + "~:font-family": [ + "AR One Sans" + ], + "~:font-weight": "200" + }, + "~:description": "", + "~:modified-at": "~m1782812999332" + } + } + ], + [ + "border-radius", + { + "~#penpot/token": { + "~:id": "~uf2256046-b127-808e-8008-4134c130c292", + "~:name": "border-radius", + "~:type": "~:border-radius", + "~:value": "{base-50} * 2", + "~:description": "", + "~:modified-at": "~m1782810058947" + } + } + ] + ] + } + } + } + ] + ] + } + ] + ] + }, + "~:themes": { + "~#ordered-map": [ + [ + "", + { + "~#ordered-map": [ + [ + "__PENPOT__HIDDEN__TOKEN__THEME__", + { + "~#penpot/token-theme": { + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:name": "__PENPOT__HIDDEN__TOKEN__THEME__", + "~:group": "", + "~:description": "", + "~:is-source": false, + "~:external-id": "", + "~:modified-at": "~m1782812922760", + "~:sets": { + "~#set": [ + "Global" + ] + } + } + } + ] + ] + } + ], + [ + "App", + { + "~#ordered-map": [ + [ + "Web", + { + "~#penpot/token-theme": { + "~:id": "~u37900259-7f15-8003-8007-9ee75dd2f2d2", + "~:name": "Web", + "~:group": "App", + "~:description": "", + "~:is-source": false, + "~:external-id": "37900259-7f15-8003-8007-9ee75dd2f2d2", + "~:modified-at": "~m1782810072529", + "~:sets": { + "~#set": [ + "Mode/Dark", + "Global" + ] + } + } + } + ], + [ + "Mobile", + { + "~#penpot/token-theme": { + "~:id": "~u37900259-7f15-8003-8007-9ee77eb567bd", + "~:name": "Mobile", + "~:group": "App", + "~:description": "", + "~:is-source": false, + "~:external-id": "37900259-7f15-8003-8007-9ee77eb567bd", + "~:modified-at": "~m1782810072529", + "~:sets": { + "~#set": [ + "Mode/Light", + "Global" + ] + } + } + } + ] + ] + } + ] + ] + }, + "~:active-themes": { + "~#set": [ + "/__PENPOT__HIDDEN__TOKEN__THEME__" + ] + } + } + }, + "~:id": "~u55608328-aed3-807a-8008-41341f2f7247", + "~:options": { + "~:components-v2": true, + "~:base-font-size": "16px" + } + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/specs/tokens/apply.spec.js b/frontend/playwright/ui/specs/tokens/apply.spec.js index 1fb605acf2..5e9033de85 100644 --- a/frontend/playwright/ui/specs/tokens/apply.spec.js +++ b/frontend/playwright/ui/specs/tokens/apply.spec.js @@ -907,7 +907,7 @@ test.describe("Tokens: Detach token", () => { await expect(page.getByText("Don't remap")).toBeVisible(); await page.getByText("Don't remap").click(); const brokenPill = borderRadiusSection.getByRole("button", { - name: "is not in any active set", + name: "{borderRadius.sm} does not exists or has been deleted", }); await expect(brokenPill).toBeVisible(); @@ -1775,3 +1775,375 @@ test("BUG: 14234, Numeric input token filtering must be case sensitive", async ( measuresSection.getByText("dim-up", { exact: true }), ).not.toBeVisible(); }); + +test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ + page, +}) => { + const { + workspacePage, + tokensSidebar, + tokenContextMenuForToken, + tokenThemesSetsSidebar, + tokenSetGroupItems, + } = await setupTokensFileRender(page, { + file: "workspace/get-file-token-tooltip.json", + }); + + await page.getByRole("tab", { name: "Layers" }).click(); + const borderRadiusSection = page.getByRole("region", { + name: "Border radius section", + }); + + const fillSection = workspacePage.rightSidebar.getByRole("region", { + name: "Fill section", + }); + + const typographySection = workspacePage.rightSidebar.getByRole("region", { + name: "Text section", + }); + // ---------------------------------- + // Select rectangle with active token + // ---------------------------------- + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Rectangle with token" }) + .click(); + await expect(borderRadiusSection).toBeVisible(); + const brPill = borderRadiusSection.getByRole("button", { name: "base-50" }); + await expect(brPill).toBeVisible(); + await brPill.hover(); + await expect(page.getByRole("tooltip", { name: "base-50" })).toBeVisible(); + await expect(fillSection).toBeVisible(); + const fillTokenPill = fillSection.getByLabel("out-ref", { + exact: true, + }); + await expect(fillTokenPill).toBeVisible(); + await fillTokenPill.hover(); + const colorTokenTooltip = page.getByRole("tooltip", { + name: "out-ref", + }); + await expect(colorTokenTooltip).toBeVisible(); + await expect(colorTokenTooltip).toHaveText( + "Name: out-refResolved value: #da1fea", + ); + // ---------------------------------- + // Select text with active token + // ---------------------------------- + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Text with token" }) + .click(); + await expect(fillSection).toBeVisible(); + const textFillTokenPill = fillSection.getByLabel("out-ref", { + exact: true, + }); + await expect(textFillTokenPill).toBeVisible(); + await textFillTokenPill.hover(); + await expect(colorTokenTooltip).toBeVisible(); + await expect(colorTokenTooltip).toHaveText( + "Name: out-refResolved value: #da1fea", + ); + await expect(typographySection).toBeVisible(); + const typographyTokenPill = typographySection.getByLabel("out-typo", { + exact: true, + }); + await expect(typographyTokenPill).toBeVisible(); + await typographyTokenPill.hover(); + const typographyTokenTooltip = page.getByRole("tooltip", { + name: "out-typo", + }); + await expect(typographyTokenTooltip).toBeVisible(); + await expect(typographyTokenTooltip).toHaveText( + 'Name: out-typoResolved value:- font-family: "Arizonia"', + ); + // ----------------------------------------- + // Select rectangle layer with deleted token + // ----------------------------------------- + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Deleted token rect" }) + .click(); + + await expect(borderRadiusSection).toBeVisible(); + const deletedBrPill = borderRadiusSection.getByRole("button", { + name: "{deleted} does not exists or", + }); + await expect(deletedBrPill).toBeVisible(); + await deletedBrPill.hover(); + await expect( + page.getByRole("tooltip", { name: "{deleted} does not exists or" }), + ).toBeVisible(); + await expect(fillSection).toBeVisible(); + const fillBrokenTokenPill = fillSection.getByLabel("blue", { + exact: true, + }); + await expect(fillBrokenTokenPill).toBeVisible(); + await fillBrokenTokenPill.hover(); + const fillBrokenTokenTooltip = page.getByRole("tooltip", { + name: "blue", + }); + await expect(fillBrokenTokenTooltip).toBeVisible(); + await expect(fillBrokenTokenTooltip).toHaveText( + "{blue} does not exists or has been deleted.", + ); + // ------------------------------------ + // Select text layer with deleted token + // ------------------------------------ + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Text with deleted token" }) + .click(); + await expect(typographySection).toBeVisible(); + const brokenTypographyTokenPill = typographySection.getByLabel( + "deleted-typo", + { exact: true }, + ); + await expect(brokenTypographyTokenPill).toBeVisible(); + await brokenTypographyTokenPill.hover(); + const brokenTypographyTokenTooltip = page.getByRole("tooltip", { + name: "deleted-typo", + }); + await expect(brokenTypographyTokenTooltip).toBeVisible(); + await expect(brokenTypographyTokenTooltip).toHaveText( + "{deleted-typo} does not exists or has been deleted.", + ); + + // --------------------------------------------------- + // Select rectangle layer with deleted reference token + // --------------------------------------------------- + await page.getByRole("tab", { name: "Tokens" }).click(); + await tokenThemesSetsSidebar.getByRole("button", { name: "Dark" }).click(); + + await tokenThemesSetsSidebar + .getByRole("button", { name: "Dark" }) + .getByRole("checkbox") + .click(); + await page.getByRole("tab", { name: "Layers" }).click(); + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Rectangle with deleted reference" }) + .click(); + await expect(borderRadiusSection).toBeVisible(); + const deletedReferenceBrPill = borderRadiusSection.getByRole("button", { + name: "Reference is not valid or is not in any active set", + }); + await expect(deletedReferenceBrPill).toBeVisible(); + await deletedReferenceBrPill.hover(); + await expect( + page.getByRole("tooltip", { + name: "Reference is not valid or is not in any active set", + }), + ).toBeVisible(); + await expect(fillSection).toBeVisible(); + const fillDeletedReferenceTokenPill = fillSection.getByLabel("ref-grfeen", { + exact: true, + }); + await expect(fillDeletedReferenceTokenPill).toBeVisible(); + await fillDeletedReferenceTokenPill.hover(); + const fillDeletedReferenceTokenTooltip = page.getByRole("tooltip", { + name: "Reference is not valid or is not in any active set", + }); + await expect(fillDeletedReferenceTokenTooltip).toBeVisible(); + await expect(fillDeletedReferenceTokenTooltip).toHaveText( + "Reference is not valid or is not in any active set", + ); + + // ---------------------------------------------- + // Select text layer with deleted reference token + // ---------------------------------------------- + + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Text with deleted reference" }) + .click(); + + await expect(typographySection).toBeVisible(); + const deletedRefTypographyTokenPill = typographySection.getByLabel( + "ref-typo", + { exact: true }, + ); + await expect(deletedRefTypographyTokenPill).toBeVisible(); + await deletedRefTypographyTokenPill.hover(); + const deletedRefTypographyTokenTooltip = page.getByRole("tooltip", { + name: "Reference is not valid or is", + }); + await expect(deletedRefTypographyTokenTooltip).toBeVisible(); + await expect(deletedRefTypographyTokenTooltip).toHaveText( + "Reference is not valid or is not in any active set", + ); + await expect(fillSection).toBeVisible(); + const fillTextDeletedReferenceTokenPill = fillSection.getByLabel( + "ref-grfeen", + { + exact: true, + }, + ); + await expect(fillTextDeletedReferenceTokenPill).toBeVisible(); + await fillTextDeletedReferenceTokenPill.hover(); + const fillTextDeletedReferenceTokenTooltip = page.getByRole("tooltip", { + name: "Reference is not valid or is not in any active set", + }); + await expect(fillTextDeletedReferenceTokenTooltip).toBeVisible(); + await expect(fillTextDeletedReferenceTokenTooltip).toHaveText( + "Reference is not valid or is not in any active set", + ); + + // ----------------------------------------------------------- + // Select rectangle layer with reference token on inactive set + // ----------------------------------------------------------- + await page.getByRole("tab", { name: "Tokens" }).click(); + await tokenThemesSetsSidebar.getByRole("button", { name: "Global" }).click(); + + await tokenThemesSetsSidebar + .getByRole("button", { name: "Global" }) + .getByRole("checkbox") + .click(); + await page.getByRole("tab", { name: "Layers" }).click(); + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Rectangle with not active reference" }) + .click(); + await expect(borderRadiusSection).toBeVisible(); + const nonActiveReferenceBrPill = borderRadiusSection.getByRole("button", { + name: "Reference is not valid or is not in any active set", + }); + await expect(nonActiveReferenceBrPill).toBeVisible(); + await nonActiveReferenceBrPill.hover(); + await expect( + page.getByRole("tooltip", { + name: "Reference is not valid or is not in any active set", + }), + ).toBeVisible(); + await expect(fillSection).toBeVisible(); + const fillNonActiveReferenceTokenPill = fillSection.getByLabel("in-color", { + exact: true, + }); + await expect(fillNonActiveReferenceTokenPill).toBeVisible(); + await fillNonActiveReferenceTokenPill.hover(); + const fillNonActiveReferenceTokenTooltip = page.getByRole("tooltip", { + name: "Reference is not valid or is not in any active set", + }); + await expect(fillNonActiveReferenceTokenTooltip).toBeVisible(); + await expect(fillNonActiveReferenceTokenTooltip).toHaveText( + "Reference is not valid or is not in any active set", + ); + // ------------------------------------------------------ + // Select text layer with reference token on inactive set + // ------------------------------------------------------ + + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Text with not active reference" }) + .click(); + + await expect(typographySection).toBeVisible(); + const notActiveRefTypographyTokenPill = typographySection.getByLabel( + "in-typo", + { exact: true }, + ); + await expect(notActiveRefTypographyTokenPill).toBeVisible(); + await notActiveRefTypographyTokenPill.hover(); + const notActiveRefTypographyTokenTooltip = page.getByRole("tooltip", { + name: "Reference is not valid or is", + }); + await expect(notActiveRefTypographyTokenTooltip).toBeVisible(); + await expect(notActiveRefTypographyTokenTooltip).toHaveText( + "Reference is not valid or is not in any active set", + ); + await expect(fillSection).toBeVisible(); + const fillTextNotActiveReferenceTokenPill = fillSection.getByLabel( + "in-color", + { + exact: true, + }, + ); + await expect(fillTextNotActiveReferenceTokenPill).toBeVisible(); + await fillTextNotActiveReferenceTokenPill.hover(); + const fillTextNotActiveReferenceTokenTooltip = page.getByRole("tooltip", { + name: "Reference is not valid or is not in any active set", + }); + await expect(fillTextNotActiveReferenceTokenTooltip).toBeVisible(); + await expect(fillTextNotActiveReferenceTokenTooltip).toHaveText( + "Reference is not valid or is not in any active set", + ); + + // ------------------------------------------------- + // Select rectangle layer with token on inactive set + // ------------------------------------------------- + await page.getByRole("tab", { name: "Tokens" }).click(); + await tokenThemesSetsSidebar.getByRole("button", { name: "Dark" }).click(); + + await tokenThemesSetsSidebar + .getByRole("button", { name: "Dark" }) + .getByRole("checkbox") + .click(); + await page.getByRole("tab", { name: "Layers" }).click(); + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Rectangle with not active token" }) + .click(); + await expect(borderRadiusSection).toBeVisible(); + const nonActiveBrPill = borderRadiusSection.getByRole("button", { + name: "{border-radius} is not in any active set", + }); + await expect(nonActiveBrPill).toBeVisible(); + await nonActiveBrPill.hover(); + await expect( + page.getByRole("tooltip", { + name: "{border-radius} is not in any active set or has an invalid value", + }), + ).toBeVisible(); + await expect(fillSection).toBeVisible(); + const fillNonActiveTokenPill = fillSection.getByLabel("red", { + exact: true, + }); + await expect(fillNonActiveTokenPill).toBeVisible(); + await fillNonActiveTokenPill.hover(); + const fillNonActiveTokenTooltip = page.getByRole("tooltip", { + name: "{red} is not in any active set or has an invalid value.", + }); + await expect(fillNonActiveTokenTooltip).toBeVisible(); + await expect(fillNonActiveTokenTooltip).toHaveText( + "{red} is not in any active set or has an invalid value.", + ); + + // -------------------------------------------- + // Select text layer with token on inactive set + // -------------------------------------------- + + await workspacePage.layers + .getByTestId("layer-row") + .filter({ hasText: "Text with not active token" }) + .click(); + + await expect(typographySection).toBeVisible(); + const notActiveTypographyTokenPill = typographySection.getByLabel( + "typo-2", + { exact: true }, + ); + await expect(notActiveTypographyTokenPill).toBeVisible(); + await notActiveTypographyTokenPill.hover(); + const notActiveTypographyTokenTooltip = page.getByRole("tooltip", { + name: "{typo-2} is not in any active set or has an invalid value.", + }); + await expect(notActiveTypographyTokenTooltip).toBeVisible(); + await expect(notActiveTypographyTokenTooltip).toHaveText( + "{typo-2} is not in any active set or has an invalid value.", + ); + await expect(fillSection).toBeVisible(); + const fillTextNotActiveTokenPill = fillSection.getByLabel( + "red", + { + exact: true, + }, + ); + await expect(fillTextNotActiveTokenPill).toBeVisible(); + await fillTextNotActiveTokenPill.hover(); + const fillTextNotActiveTokenTooltip = page.getByRole("tooltip", { + name: "{red} is not in any active set or has an invalid value.", + }); + await expect(fillTextNotActiveTokenTooltip).toBeVisible(); + await expect(fillTextNotActiveTokenTooltip).toHaveText( + "{red} is not in any active set or has an invalid value.", + ); +}); diff --git a/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs b/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs index 5be77b6ef9..22291eca66 100644 --- a/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs +++ b/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs @@ -9,6 +9,7 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] + [app.main.refs :as refs] [app.main.ui.ds.buttons.icon-button :refer [icon-button*]] [app.main.ui.ds.foundations.assets.icon :as i] [app.main.ui.ds.tooltip :refer [tooltip*]] @@ -43,10 +44,25 @@ token-has-errors]}] (let [set-active? (some? id) + all-tokens-map (mf/deref refs/workspace-all-tokens-map) + token-exists? (contains? all-tokens-map label) + token-not-active (and token-exists? (not set-active?)) content (cond - token-has-errors (tr "workspace.tokens.ref-not-valid") - (not set-active?) (tr "ds.inputs.token-field.no-active-token-option" label) - :else label) + (not token-exists?) + (tr "options.deleted-token-with-name" label) + + (and token-exists? (not set-active?)) + (tr "ds.inputs.token-field.no-active-token-option" label) + + (and token-exists? token-has-errors) + (tr "workspace.tokens.ref-not-valid") + + :else + label) + + broken-state (or (not token-exists?) + token-has-errors + token-not-active) default-id (mf/use-id) id (d/nilv id default-id) @@ -84,15 +100,13 @@ [:button {:on-click on-click :ref pill-ref :class (stl/css-case :pill true - :no-set-pill (or (not set-active?) - token-has-errors) + :no-set-pill broken-state :pill-disabled disabled) :disabled disabled :aria-labelledby (dm/str id "-pill") :on-key-down on-token-key-down} value - (when (or (not set-active?) - token-has-errors) + (when broken-state [:div {:class (stl/css :pill-dot)}])]]] (when-not ^boolean disabled diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs index 645ccb5c8c..743038cbbe 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs @@ -9,6 +9,7 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] + [app.main.refs :as refs] [app.main.ui.ds.buttons.icon-button :refer [icon-button*]] [app.main.ui.ds.controls.shared.token-option :as to] [app.main.ui.ds.foundations.assets.icon :refer [icon*] :as i] @@ -25,31 +26,46 @@ token (->> (:typography active-tokens) (d/seek #(= (:name %) token-name))) - has-errors (some? (:errors token)) display-name (or (:name token) token-name) resolved-value (:resolved-value token) - not-active (or (nil? token) - (empty? (:typography active-tokens))) on-detach (mf/use-fn (mf/deps display-name) (fn [] (detach-token display-name))) + all-tokens-map (mf/deref refs/workspace-all-tokens-map) + + token-exists? (contains? all-tokens-map token-name) + has-errors (and token-exists? + (some? (:errors token))) + + not-active (and + token-exists? + (or (nil? token) + (empty? (:typography active-tokens)))) + + broken-state (or (not token-exists?) + has-errors + not-active) tooltip-content (cond not-active - (tr "options.deleted-token") + (tr "ds.inputs.token-field.no-active-token-option" token-name) + + (not token-exists?) + (tr "options.deleted-token-with-name" token-name) + has-errors - (tr "not-active-token.no-name") + (tr "workspace.tokens.ref-not-valid") + :else (mf/html [:> to/resolved-value-tooltip* {:token-name token-name :resolved-value resolved-value}]))] [:div {:class (stl/css-case :token-typography-row true - :token-typography-row-with-errors has-errors - :token-typography-row-not-active not-active)} - (when (or has-errors not-active) + :token-typography-row-with-errors broken-state)} + (when broken-state [:div {:class (stl/css :error-dot)}]) [:> icon* {:icon-id i/text-typography :class (stl/css :icon)}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.scss index 5d6ac3d6ac..615e8379c5 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.scss @@ -35,8 +35,7 @@ } } -.token-typography-row-with-errors, -.token-typography-row-not-active { +.token-typography-row-with-errors { --token-typography-row-background-color: var(--color-background-primary); --token-typography-row-foreground-color: var(--color-foreground-secondary); --token-typography-row-border-color: var(--color-token-border); diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs index 1dcfa53306..41f63f3a32 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs @@ -89,42 +89,72 @@ (let [token-name (or (:name token) applied-token-name)] (detach-token token-name)))) - has-errors (some? (:errors token)) token-name (:name token) resolved (:resolved-value token) - not-active (or (empty? active-tokens) - (nil? token)) + + + ;; Tooltip content for the swatch and token name, based on the token's state + all-tokens-map (mf/deref refs/workspace-all-tokens-map) + + token-exists? (contains? all-tokens-map applied-token-name) + has-errors (and token-exists? + (some? (:errors token))) + + not-active (and + token-exists? + (or (empty? active-tokens) + (nil? token))) + id (dm/str (:id token) "-name") token-name-ref (mf/use-ref nil) + + broken-state (or (not token-exists?) + has-errors + not-active) + swatch-tooltip-content (cond not-active - (tr "options.deleted-token") + (tr "ds.inputs.token-field.no-active-token-option" applied-token-name) + + (not token-exists?) + (tr "options.deleted-token-with-name" applied-token-name) + has-errors - (tr "not-active-token.no-name") + (tr "workspace.tokens.ref-not-valid") + :else (tr "workspace.tokens.resolved-value" resolved)) + name-tooltip-content (cond - not-active - (tr "options.deleted-token") has-errors - (tr "not-active-token.no-name") + (tr "workspace.tokens.ref-not-valid") + + not-active + (tr "ds.inputs.token-field.no-active-token-option" applied-token-name) + + (not token-exists?) + (tr "options.deleted-token-with-name" applied-token-name) + :else #(mf/html [:div [:span (dm/str (tr "workspace.tokens.token-name") ": ")] - [:span {:class (stl/css :token-name-tooltip)} applied-token-name]]))] + [:span {:class (stl/css :token-name-tooltip)} applied-token-name] + [:div + [:span (tr "inspect.tabs.styles.token-resolved-value")] + [:span {:class (stl/css :resolved-value)} (dm/str " " resolved)]]]))] + [:div {:class (stl/css :color-info)} [:div {:class (stl/css-case :token-color-wrapper true - :token-color-with-errors has-errors - :token-color-not-active not-active)} + :token-color-with-errors broken-state)} [:div {:class (stl/css :color-bullet-wrapper)} - (when (or has-errors not-active) + (when broken-state [:div {:class (stl/css :error-dot)}]) [:> swatch* {:background color :tooltip-content swatch-tooltip-content :on-click on-swatch-click-token - :has-errors (or has-errors not-active) + :has-errors broken-state :size "small"}]] [:> tooltip* {:content name-tooltip-content :id id diff --git a/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs b/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs index 85c5846035..64191793a9 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs @@ -290,7 +290,7 @@ :token-pill-disabled disabled? :token-pill-applied (and can-edit? has-selected? (or half-applied? full-applied?)) :token-pill-invalid (and can-edit? errors?) - :token-pill-invalid-applied (and full-applied? errors? can-edit?) + :token-pill-invalid-applied (and (or half-applied? full-applied?) errors? can-edit?) :token-pill-viewer is-viewer? :token-pill-applied-viewer (and is-viewer? has-selected? (or half-applied? full-applied?)) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index fa3f61cae6..2befc9634b 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -5028,6 +5028,11 @@ msgstr "Penpot" msgid "options.deleted-token" msgstr "This token does not exists or has been deleted." + +#: src/app/main/ui/ds/controls/utilities/token_field.cljs +msgid "options.deleted-token-with-name" +msgstr "{%s} does not exists or has been deleted." + #: src/app/plugins/utils.cljs:318 msgid "plugins.validation.message" msgstr "Field %s is invalid: %s" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 6c4a7b6ed0..cac40d58be 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -4897,6 +4897,10 @@ msgstr "Penpot" msgid "options.deleted-token" msgstr "Este token no existe o ha sido borrado." +#: src/app/main/ui/ds/controls/utilities/token_field.cljs +msgid "options.deleted-token-with-name" +msgstr "{%s} no existe o ha sido borrado." + #: src/app/main/ui/auth/recovery.cljs:88 msgid "profile.recovery.go-to-login" msgstr "Ir al login" From 05e9c68a7468317acb26209a33370c8204b7787a Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 30 Jun 2026 17:59:54 +0200 Subject: [PATCH 02/24] :bug: Fix preserving empty text fill when editing without changes (#10483) --- .../ui/specs/text-editor-v2.spec.js | 30 +++++++++++++++++++ .../src/app/util/text/content/from_dom.cljs | 3 +- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/frontend/playwright/ui/specs/text-editor-v2.spec.js b/frontend/playwright/ui/specs/text-editor-v2.spec.js index 25676c45e1..a58c71dba4 100644 --- a/frontend/playwright/ui/specs/text-editor-v2.spec.js +++ b/frontend/playwright/ui/specs/text-editor-v2.spec.js @@ -331,3 +331,33 @@ test("BUG 14098 - Fix text editor having 0 width or height", async ({ page }) => const textEditor = workspace.page.locator(`div[class*="viewport"]`).first().getByRole('textbox').first(); await expect(textEditor).toBeVisible(); }); + +test("Preserves empty fill after editing text without changes", async ({ page }) => { + const initialText = "Hello"; + const workspace = new WasmWorkspacePage(page, { + textEditor: true, + }); + + await workspace.setupEmptyFile(); + await workspace.mockRPC("update-file?id=*", "text-editor/update-file.json"); + await workspace.goToWorkspace(); + + await workspace.createTextShape(190, 150, 300, 200, initialText); + await workspace.textEditor.stopEditing(); + + const fillColorButton = workspace.page.getByRole("button", { + name: "#000000", + }); + await expect(fillColorButton).toBeVisible(); + await workspace.page.getByRole("button", { name: "Remove color" }).click(); + await expect(fillColorButton).toHaveCount(0); + + await workspace.doubleClickLeafLayer(initialText); + await workspace.textEditor.waitForEditor(); + await workspace.moveButton.click(); + await workspace.clickAt(100, 100); + + await workspace.clickLeafLayer(initialText); + await expect(fillColorButton).toHaveCount(0); + await expect(workspace.page.getByTestId("add-fill")).toBeVisible(); +}); diff --git a/frontend/src/app/util/text/content/from_dom.cljs b/frontend/src/app/util/text/content/from_dom.cljs index 7b56b014c1..19d0293287 100644 --- a/frontend/src/app/util/text/content/from_dom.cljs +++ b/frontend/src/app/util/text/content/from_dom.cljs @@ -42,8 +42,7 @@ (let [attrs (or attrs []) value-empty? (fn [v] (or (nil? v) - (and (string? v) (empty? v)) - (and (coll? v) (empty? v))))] + (and (string? v) (empty? v))))] (reduce (fn [acc key] (let [style (.-style element) value (if (contains? styles/mapping key) From c8f586a1974980bbcae79a470127df1ae8432632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elena=20Torr=C3=B3?= Date: Wed, 1 Jul 2026 11:09:57 +0200 Subject: [PATCH 03/24] :bug: Fix async text rendering on tiles (#10504) --- frontend/src/app/render_wasm/api.cljs | 102 +++++++++++------- frontend/src/app/render_wasm/api/fonts.cljs | 10 ++ frontend/src/app/render_wasm/shape.cljs | 8 +- .../render_wasm/process_objects_test.cljs | 6 +- render-wasm/src/render.rs | 13 +++ render-wasm/src/shapes/text.rs | 5 + render-wasm/src/wasm/text.rs | 20 +++- 7 files changed, 117 insertions(+), 47 deletions(-) diff --git a/frontend/src/app/render_wasm/api.cljs b/frontend/src/app/render_wasm/api.cljs index 744f0b1830..b00406d0f5 100644 --- a/frontend/src/app/render_wasm/api.cljs +++ b/frontend/src/app/render_wasm/api.cljs @@ -1424,18 +1424,20 @@ (set-shape-layout shape) (set-layout-data shape) (let [is-text? (= type :text) - pending_thumbnails (into [] (concat - (when is-text? (set-shape-text-content id content)) + text-content-pending (when is-text? (set-shape-text-content id content)) + pending-thumbnails (into [] (concat + text-content-pending (when is-text? (set-shape-text-images id content true)) (set-shape-fills id fills true) (set-shape-strokes id strokes true))) - pending_full (into [] (concat + pending-full (into [] (concat (when is-text? (set-shape-text-images id content false)) (set-shape-fills id fills false) (set-shape-strokes id strokes false)))] (perf/end-measure "set-object") - {:thumbnails pending_thumbnails - :full pending_full})))) + {:thumbnails pending-thumbnails + :full pending-full + :font-pending-ids (if (some :callback text-content-pending) [id] [])})))) (defn- update-text-layouts "Synchronously update text layouts for all shapes and send rect updates @@ -1443,8 +1445,29 @@ [text-ids] (run! f/update-text-layout text-ids)) +(defn- force-update-text-layouts + "Like update-text-layouts but forces a relayout. Use after pending fonts + resolve so layouts (and the extrect/tiles derived from them) use real glyph + metrics instead of fallback-font estimates." + [text-ids] + (run! f/force-update-text-layout text-ids)) + +(defn- relayout-after-fonts! + "Relayout text shapes once their pending fonts have resolved. Shapes in + `font-pending-ids` had a font fetched, so they get a forced relayout to pick + up the real glyph metrics; the remaining text shapes get a normal layout." + [shapes font-pending-ids] + (let [force-ids (set font-pending-ids) + text-ids (into [] (comp (filter cfh/text-shape?) (map :id)) shapes) + forced (filterv force-ids text-ids) + rest-ids (filterv (complement force-ids) text-ids)] + (when (seq forced) + (force-update-text-layouts forced)) + (when (seq rest-ids) + (update-text-layouts rest-ids)))) + (defn process-pending - [shapes thumbnails full on-complete] + [shapes thumbnails full font-pending-ids on-complete] (let [pending-thumbnails (d/index-by :key :callback thumbnails) @@ -1468,11 +1491,7 @@ (rx/catch #(rx/empty)))) (rx/subs! (fn [_] - ;; Fonts are now loaded — recompute text layouts so Skia - ;; uses the real metrics instead of fallback-font estimates. - (let [text-ids (into [] (comp (filter cfh/text-shape?) (map :id)) shapes)] - (when (seq text-ids) - (update-text-layouts text-ids))) + (relayout-after-fonts! shapes font-pending-ids) (request-render "images-loaded")) noop-fn (fn [] (when (fn? on-complete) (on-complete))))) @@ -1481,8 +1500,8 @@ (defn process-object [shape] - (let [{:keys [thumbnails full]} (set-object shape)] - (process-pending [shape] thumbnails full noop-fn))) + (let [{:keys [thumbnails full font-pending-ids]} (set-object shape)] + (process-pending [shape] thumbnails full font-pending-ids noop-fn))) (defn process-objects "Like process-object but for multiple shapes at once. Accumulates all @@ -1491,37 +1510,43 @@ just the first shape that triggered the fetch." [shapes] (let [total-shapes (count shapes) - {:keys [thumbnails full]} - (loop [index 0 thumbnails-acc (transient []) full-acc (transient [])] + {:keys [thumbnails full font-pending-ids]} + (loop [index 0 thumbnails-acc (transient []) full-acc (transient []) font-acc (transient [])] (if (< index total-shapes) (let [shape (nth shapes index) - {:keys [thumbnails full]} (set-object shape)] + {:keys [thumbnails full font-pending-ids]} (set-object shape)] (recur (inc index) (reduce conj! thumbnails-acc thumbnails) - (reduce conj! full-acc full))) - {:thumbnails (persistent! thumbnails-acc) :full (persistent! full-acc)}))] - (process-pending shapes thumbnails full noop-fn))) + (reduce conj! full-acc full) + (reduce conj! font-acc font-pending-ids))) + {:thumbnails (persistent! thumbnails-acc) + :full (persistent! full-acc) + :font-pending-ids (persistent! font-acc)}))] + (process-pending shapes thumbnails full font-pending-ids noop-fn))) (defn- process-shapes-chunk "Process shapes starting at `start-index` until the time budget is exhausted. - Returns {:thumbnails [...] :full [...] :next-index n}" - [shapes start-index thumbnails-acc full-acc] + Returns {:thumbnails [...] :full [...] :font-pending-ids [...] :next-index n}" + [shapes start-index thumbnails-acc full-acc font-pending-acc] (let [total (count shapes) deadline (+ (js/performance.now) CHUNK_TIME_BUDGET_MS)] (loop [index start-index t-acc (transient thumbnails-acc) - f-acc (transient full-acc)] + f-acc (transient full-acc) + fp-acc (transient font-pending-acc)] (if (and (< index total) ;; Check performance.now every 8 shapes to reduce overhead (or (pos? (bit-and (- index start-index) 7)) (<= (js/performance.now) deadline))) (let [shape (nth shapes index) - {:keys [thumbnails full]} (set-object shape)] + {:keys [thumbnails full font-pending-ids]} (set-object shape)] (recur (inc index) (reduce conj! t-acc thumbnails) - (reduce conj! f-acc full))) + (reduce conj! f-acc full) + (reduce conj! fp-acc font-pending-ids))) {:thumbnails (persistent! t-acc) :full (persistent! f-acc) + :font-pending-ids (persistent! fp-acc) :next-index index})))) (defn- set-objects-async @@ -1532,16 +1557,16 @@ (let [total-shapes (count shapes)] (p/create (fn [resolve _reject] - (letfn [(process-next-chunk [index thumbnails-acc full-acc] + (letfn [(process-next-chunk [index thumbnails-acc full-acc font-pending-acc] (if (< index total-shapes) ;; Process one time-budgeted chunk - (let [{:keys [thumbnails full next-index]} + (let [{:keys [thumbnails full font-pending-ids next-index]} (process-shapes-chunk shapes index - thumbnails-acc full-acc)] + thumbnails-acc full-acc font-pending-acc)] ;; Yield to browser, then continue with next chunk (-> (yield-to-browser) (p/then (fn [_] - (process-next-chunk next-index thumbnails full))))) + (process-next-chunk next-index thumbnails full font-pending-ids))))) ;; All chunks done - finalize (do (perf/end-measure "set-objects") @@ -1588,13 +1613,11 @@ (rx/reduce conj []))) (rx/subs! (fn [_] - (let [text-ids (into [] (comp (filter cfh/text-shape?) (map :id)) shapes)] - (when (seq text-ids) - (update-text-layouts text-ids))) + (relayout-after-fonts! shapes font-pending-acc) (request-render "images-loaded")) noop-fn noop-fn)))))))] - (process-next-chunk 0 [] [])))))) + (process-next-chunk 0 [] [] [])))))) ;; This is a version of process-pending that doesn't have sideffects @@ -1647,22 +1670,25 @@ "Synchronously process all shapes (for small shape counts)." [shapes render-callback on-shapes-ready] (let [total-shapes (count shapes) - {:keys [thumbnails full]} - (loop [index 0 thumbnails-acc (transient []) full-acc (transient [])] + {:keys [thumbnails full font-pending-ids]} + (loop [index 0 thumbnails-acc (transient []) full-acc (transient []) font-acc (transient [])] (if (< index total-shapes) (let [shape (nth shapes index) - {:keys [thumbnails full]} (set-object shape)] + {:keys [thumbnails full font-pending-ids]} (set-object shape)] (recur (inc index) (reduce conj! thumbnails-acc thumbnails) - (reduce conj! full-acc full))) - {:thumbnails (persistent! thumbnails-acc) :full (persistent! full-acc)}))] + (reduce conj! full-acc full) + (reduce conj! font-acc font-pending-ids))) + {:thumbnails (persistent! thumbnails-acc) + :full (persistent! full-acc) + :font-pending-ids (persistent! font-acc)}))] (perf/end-measure "set-objects") (when on-shapes-ready (on-shapes-ready)) ;; Rebuild the tile index so _render knows which shapes ;; map to which tiles after a page switch. (h/call wasm/internal-module "_set_view_end") (reset! view-interaction-active? false) - (process-pending shapes thumbnails full + (process-pending shapes thumbnails full font-pending-ids (fn [] (if render-callback (render-callback) diff --git a/frontend/src/app/render_wasm/api/fonts.cljs b/frontend/src/app/render_wasm/api/fonts.cljs index 676a00cf78..86946db5ba 100644 --- a/frontend/src/app/render_wasm/api/fonts.cljs +++ b/frontend/src/app/render_wasm/api/fonts.cljs @@ -119,6 +119,16 @@ (aget shape-id-buffer 2) (aget shape-id-buffer 3))))) +(defn force-update-text-layout + [id] + (when wasm/context-initialized? + (let [shape-id-buffer (uuid/get-u32 id)] + (h/call wasm/internal-module "_force_update_shape_text_layout_for" + (aget shape-id-buffer 0) + (aget shape-id-buffer 1) + (aget shape-id-buffer 2) + (aget shape-id-buffer 3))))) + ;; IMPORTANT: Only TTF fonts can be stored. (defn- store-font-buffer [font-data font-array-buffer emoji? fallback?] diff --git a/frontend/src/app/render_wasm/shape.cljs b/frontend/src/app/render_wasm/shape.cljs index feed61d674..403a1314ee 100644 --- a/frontend/src/app/render_wasm/shape.cljs +++ b/frontend/src/app/render_wasm/shape.cljs @@ -250,13 +250,15 @@ (api/set-shape-svg-raw-content (api/get-static-markup shape)) (cfh/text-shape? shape) - (let [pending-thumbnails (into [] (concat (api/set-shape-text-content id v))) - pending-full (into [] (concat (api/set-shape-text-images id v)))] + (let [text-content-pending (api/set-shape-text-content id v) + pending-thumbnails (vec text-content-pending) + pending-full (vec (api/set-shape-text-images id v)) + font-pending-ids (when (some :callback text-content-pending) [id])] ;; FIXME: this is a hack to process the pending tasks ;; asynchronously we should probably modify set-wasm-attr! ;; to return a list of callbacks to be executed in a ;; second pass. - (api/process-pending [shape] pending-thumbnails pending-full api/noop-fn) + (api/process-pending [shape] pending-thumbnails pending-full font-pending-ids api/noop-fn) nil)) :grow-type diff --git a/frontend/test/frontend_tests/render_wasm/process_objects_test.cljs b/frontend/test/frontend_tests/render_wasm/process_objects_test.cljs index 740029a3ca..c985b336ae 100644 --- a/frontend/test/frontend_tests/render_wasm/process_objects_test.cljs +++ b/frontend/test/frontend_tests/render_wasm/process_objects_test.cljs @@ -51,7 +51,7 @@ (let [shapes [(make-shape :text) (make-shape :text) (make-shape :rect)] visited-ids (atom []) mock-set (fn [s] (swap! visited-ids conj (:id s)) {:thumbnails [] :full []}) - mock-pend (fn [_sh _t _f _cb] nil)] + mock-pend (fn [_sh _t _f _fp _cb] nil)] (with-mocks* mock-set mock-pend #(wasm.api/process-objects shapes)) @@ -66,7 +66,7 @@ (let [shapes [(make-shape :text) (make-shape :text)] captured (atom nil) mock-set (fn [_s] {:thumbnails [] :full []}) - mock-pend (fn [sh t f cb] (reset! captured {:shapes sh :thumbnails t :full f :cb cb}))] + mock-pend (fn [sh t f _fp cb] (reset! captured {:shapes sh :thumbnails t :full f :cb cb}))] (with-mocks* mock-set mock-pend #(wasm.api/process-objects shapes)) @@ -99,7 +99,7 @@ {:thumbnails [] :full []})) mock-pend - (fn [sh t f _cb] (reset! captured {:shapes sh :thumbnails t :full f}))] + (fn [sh t f _fp _cb] (reset! captured {:shapes sh :thumbnails t :full f}))] (with-mocks* mock-set mock-pend #(wasm.api/process-objects shapes)) diff --git a/render-wasm/src/render.rs b/render-wasm/src/render.rs index ee4ebe3bd0..a4a2e38eb1 100644 --- a/render-wasm/src/render.rs +++ b/render-wasm/src/render.rs @@ -410,6 +410,11 @@ pub(crate) struct RenderState { /// GPU crops from `Backbuffer` or tile atlas keyed by shape id. Filled on full-frame completion; during /// drag, entries for the moved top-level selection are ensured here pub backbuffer_crop_cache: HashMap, + /// Whether we've already forced a GPU flush+submit before a tile-atlas + /// snapshot this render. The first snapshot of a pass can otherwise capture + /// a tile before its text glyph uploads complete (blank first/center tile). + /// One explicit flush warms the submit path for the rest of the pass. + pub tile_atlas_flushed: bool, } pub struct InteractiveDragCrop { @@ -592,6 +597,7 @@ impl RenderState { interactive_target_seeded: false, preserve_target_during_render: false, backbuffer_crop_cache: HashMap::default(), + tile_atlas_flushed: false, }) } @@ -1020,6 +1026,12 @@ impl RenderState { .as_ref() .ok_or(Error::CriticalError("Current tile not found".to_string()))?; + // Force pending GPU work (text glyph-atlas uploads) + if !self.tile_atlas_flushed { + crate::get_gpu_state().context.flush_and_submit(); + self.tile_atlas_flushed = true; + } + self.surfaces.draw_current_tile_into_tile_atlas( &self.tile_viewbox, ¤t_tile, @@ -2090,6 +2102,7 @@ impl RenderState { self.surfaces.atlas.set_doc_bounds(doc_bounds); self.cache_cleared_this_render = false; + self.tile_atlas_flushed = false; let preserve_target = self.preserve_target_during_render; self.preserve_target_during_render = false; diff --git a/render-wasm/src/shapes/text.rs b/render-wasm/src/shapes/text.rs index 86159ac3df..484acf09f3 100644 --- a/render-wasm/src/shapes/text.rs +++ b/render-wasm/src/shapes/text.rs @@ -888,6 +888,11 @@ impl TextContent { .copy_finite_size(result.2, default_width, default_height); } + pub fn force_next_layout_update(&mut self) { + self.layout_width = None; + self.layout.cached_extrect.set(None); + } + pub fn update_layout(&mut self, selrect: Rect) -> TextContentSize { if !self.layout.needs_update() && self.layout_version == self.content_version diff --git a/render-wasm/src/wasm/text.rs b/render-wasm/src/wasm/text.rs index c97ec81276..6e2575741f 100644 --- a/render-wasm/src/wasm/text.rs +++ b/render-wasm/src/wasm/text.rs @@ -370,8 +370,11 @@ pub extern "C" fn intersect_position_in_shape( false } -fn update_text_layout(shape: &mut Shape) { +fn update_text_layout(shape: &mut Shape, force: bool) { if let Type::Text(text_content) = &mut shape.shape_type { + if force { + text_content.force_next_layout_update(); + } text_content.update_layout(shape.selrect); shape.invalidate_extrect(); } @@ -380,7 +383,7 @@ fn update_text_layout(shape: &mut Shape) { #[no_mangle] pub extern "C" fn update_shape_text_layout() { with_current_shape_mut!(state, |shape: &mut Shape| { - update_text_layout(shape); + update_text_layout(shape, false); }); } @@ -389,7 +392,18 @@ pub extern "C" fn update_shape_text_layout_for(a: u32, b: u32, c: u32, d: u32) { with_state!(state, { let shape_id = uuid_from_u32_quartet(a, b, c, d); if let Some(shape) = state.shapes.get_mut(&shape_id) { - update_text_layout(shape); + update_text_layout(shape, false); + } + state.touch_shape(shape_id); + }); +} + +#[no_mangle] +pub extern "C" fn force_update_shape_text_layout_for(a: u32, b: u32, c: u32, d: u32) { + with_state!(state, { + let shape_id = uuid_from_u32_quartet(a, b, c, d); + if let Some(shape) = state.shapes.get_mut(&shape_id) { + update_text_layout(shape, true); } state.touch_shape(shape_id); }); From 7e8590b04c7d6e791ad36fd3053a115afd76116d Mon Sep 17 00:00:00 2001 From: Luis de Dios Date: Wed, 1 Jul 2026 13:08:35 +0200 Subject: [PATCH 04/24] :bug: Fix inspect in workspace displays shape size twice when selecting a shape (#10507) --- frontend/src/app/main/ui/workspace/viewport.cljs | 3 ++- frontend/src/app/main/ui/workspace/viewport_wasm.cljs | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index ce03ca1f3a..6eccc2fa41 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -505,7 +505,8 @@ (when (and (seq selected-shapes) (not transform) (not text-editing?) - (not edition)) + (not edition) + (not mode-inspect?)) [:> msr/selection-size-badge* {:selrect (gsh/shapes->rect selected-shapes) :zoom zoom}]) diff --git a/frontend/src/app/main/ui/workspace/viewport_wasm.cljs b/frontend/src/app/main/ui/workspace/viewport_wasm.cljs index 285c43e223..da9303f483 100644 --- a/frontend/src/app/main/ui/workspace/viewport_wasm.cljs +++ b/frontend/src/app/main/ui/workspace/viewport_wasm.cljs @@ -776,6 +776,7 @@ (not transform) (not text-editing?) (not edition) + (not mode-inspect?) (not page-transition?)) [:> msr/selection-size-badge* {:selrect (gsh/shapes->rect selected-shapes) From abbd28d1013a7fde6b54ee13dc1f06cd2179baef Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 1 Jul 2026 13:38:51 +0200 Subject: [PATCH 05/24] :bug: Fix long text inside color tooltip (#10511) --- frontend/src/app/main/ui/ds/tooltip/tooltip.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/main/ui/ds/tooltip/tooltip.scss b/frontend/src/app/main/ui/ds/tooltip/tooltip.scss index 5a226c5207..0647a74c3c 100644 --- a/frontend/src/app/main/ui/ds/tooltip/tooltip.scss +++ b/frontend/src/app/main/ui/ds/tooltip/tooltip.scss @@ -159,6 +159,7 @@ $arrow-side: 12px; padding: var(--sp-s) var(--sp-m); grid-area: content; block-size: fit-content; + overflow-wrap: anywhere; } .tooltip-trigger { From 665e8e018ee6c7b3dd7cc4f9d05d4bad8b6965b3 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 1 Jul 2026 13:40:12 +0200 Subject: [PATCH 06/24] :bug: Fix overlay position grid (#10512) --- .../workspace/sidebar/options/menus/interactions.scss | 10 ++++++---- frontend/stylelint.config.mjs | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss index f234b4115c..cffa05d73b 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss @@ -193,10 +193,12 @@ .interaction-row-position { grid-column: 4 / span 5; display: grid; - grid-template: - "topleft top topright" 1fr - "left center right" 1fr - "bottomleft bottom bottomright" 1fr / repeat(3, 1fr); + grid-template-areas: + "topleft top topright" + "left center right" + "bottomleft bottom bottomright"; + grid-template-rows: 1fr 1fr 1fr; + grid-template-columns: 1fr 1fr 1fr; inline-size: calc($sz-32 * 3); block-size: calc($sz-32 * 3); border-radius: $br-8; diff --git a/frontend/stylelint.config.mjs b/frontend/stylelint.config.mjs index d2a9c37097..903e1abb98 100644 --- a/frontend/stylelint.config.mjs +++ b/frontend/stylelint.config.mjs @@ -14,6 +14,12 @@ export default { "at-rule-no-unknown": null, "declaration-property-value-no-unknown": null, "property-no-unknown": [true, { ignoreProperties: ["text-box"] }], + "declaration-block-no-redundant-longhand-properties": [ + true, + { + ignoreShorthands: ["grid-template"], + }, + ], "selector-pseudo-class-no-unknown": [ true, { ignorePseudoClasses: ["global"] }, // TODO: Avoid global selector usage and remove this exception From 851fde01c10740d7d18d7981c3fbb5da396f664c Mon Sep 17 00:00:00 2001 From: Aitor Moreno Date: Wed, 1 Jul 2026 14:08:54 +0200 Subject: [PATCH 07/24] :bug: Fix SVG Raw not being saved (#10492) --- render-wasm/src/main.rs | 4 ++++ render-wasm/src/render.rs | 14 ++------------ render-wasm/src/shapes.rs | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/render-wasm/src/main.rs b/render-wasm/src/main.rs index 0aa3fae930..ffa8d34ca3 100644 --- a/render-wasm/src/main.rs +++ b/render-wasm/src/main.rs @@ -733,7 +733,11 @@ pub extern "C" fn set_shape_svg_raw_content() -> Result<()> { .map_err(|e| Error::RecoverableError(e.to_string()))? .trim_end_matches('\0') .to_string(); + + let render_state = get_render_state(); + let font_manager = skia::FontMgr::from(render_state.fonts().font_provider().clone()); shape.set_svg_raw_content(svg_raw_content); + shape.update_svg_raw_content(font_manager); }); Ok(()) diff --git a/render-wasm/src/render.rs b/render-wasm/src/render.rs index a4a2e38eb1..53d5b65312 100644 --- a/render-wasm/src/render.rs +++ b/render-wasm/src/render.rs @@ -1398,7 +1398,7 @@ impl RenderState { } match &shape.shape_type { - Type::SVGRaw(sr) => { + Type::SVGRaw(_) => { if let Some(svg_transform) = shape.svg_transform() { matrix.pre_concat(&svg_transform); } @@ -1410,17 +1410,7 @@ impl RenderState { if let Some(svg) = shape.svg.as_ref() { svg.render(self.surfaces.canvas_and_mark_dirty(fills_surface_id)); } else { - let font_manager = skia::FontMgr::from(self.fonts().font_provider().clone()); - let dom_result = skia::svg::Dom::from_str(&sr.content, font_manager); - match dom_result { - Ok(dom) => { - dom.render(self.surfaces.canvas_and_mark_dirty(fills_surface_id)); - shape.to_mut().set_svg(dom); - } - Err(e) => { - eprintln!("Error parsing SVG. Error: {}", e); - } - } + panic!("SVG should be available"); } } diff --git a/render-wasm/src/shapes.rs b/render-wasm/src/shapes.rs index 95c704ceff..92d49c7c30 100644 --- a/render-wasm/src/shapes.rs +++ b/render-wasm/src/shapes.rs @@ -722,6 +722,23 @@ impl Shape { self.invalidate_extrect(); } + pub fn update_svg_raw_content(&mut self, font_manager: skia::FontMgr) { + match &self.shape_type { + Type::SVGRaw(sr) => { + let dom_result = skia::svg::Dom::from_str(&sr.content, font_manager); + match dom_result { + Ok(dom) => { + self.set_svg(dom); + } + Err(e) => { + eprintln!("Error parsing SVG. Error: {}", e); + } + } + } + _ => panic!("Updating SVG raw content on non SVG Raw shape"), + } + } + pub fn set_svg_raw_content(&mut self, content: String) { self.shape_type = Type::SVGRaw(SVGRaw::from_content(content)); } From 04254c9fd18f6802dedeebf162462181f26d9cc7 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 1 Jul 2026 14:30:18 +0200 Subject: [PATCH 08/24] :bug: Fix token tooltips (#10515) --- .../playwright/ui/specs/tokens/apply.spec.js | 58 +++++++++---------- .../ui/ds/controls/utilities/token_field.cljs | 2 +- .../options/menus/token_typography_row.cljs | 2 +- .../sidebar/options/rows/color_row.cljs | 4 +- .../tokens/management/token_pill.cljs | 2 +- frontend/translations/cs.po | 3 - frontend/translations/de.po | 8 --- frontend/translations/en.po | 12 ++-- frontend/translations/es.po | 8 +-- frontend/translations/fr.po | 8 --- frontend/translations/fr_CA.po | 12 ---- frontend/translations/he.po | 4 -- frontend/translations/hi.po | 4 -- frontend/translations/hr.po | 4 -- frontend/translations/id.po | 4 -- frontend/translations/it.po | 12 ---- frontend/translations/ko.po | 8 --- frontend/translations/lv.po | 4 -- frontend/translations/nl.po | 8 --- frontend/translations/pt_BR.po | 4 -- frontend/translations/ro.po | 8 --- frontend/translations/sv.po | 14 ----- frontend/translations/tr.po | 14 ----- frontend/translations/ukr_UA.po | 10 ---- frontend/translations/zh_CN.po | 4 -- frontend/translations/zh_Hant.po | 4 -- 26 files changed, 40 insertions(+), 185 deletions(-) diff --git a/frontend/playwright/ui/specs/tokens/apply.spec.js b/frontend/playwright/ui/specs/tokens/apply.spec.js index 5e9033de85..5b9ae462d0 100644 --- a/frontend/playwright/ui/specs/tokens/apply.spec.js +++ b/frontend/playwright/ui/specs/tokens/apply.spec.js @@ -907,7 +907,7 @@ test.describe("Tokens: Detach token", () => { await expect(page.getByText("Don't remap")).toBeVisible(); await page.getByText("Don't remap").click(); const brokenPill = borderRadiusSection.getByRole("button", { - name: "{borderRadius.sm} does not exists or has been deleted", + name: "{borderRadius.sm} token does not exist or has been deleted", }); await expect(brokenPill).toBeVisible(); @@ -1866,12 +1866,12 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(borderRadiusSection).toBeVisible(); const deletedBrPill = borderRadiusSection.getByRole("button", { - name: "{deleted} does not exists or", + name: "{deleted} token does not exist or", }); await expect(deletedBrPill).toBeVisible(); await deletedBrPill.hover(); await expect( - page.getByRole("tooltip", { name: "{deleted} does not exists or" }), + page.getByRole("tooltip", { name: "{deleted} token does not exist or" }), ).toBeVisible(); await expect(fillSection).toBeVisible(); const fillBrokenTokenPill = fillSection.getByLabel("blue", { @@ -1884,7 +1884,7 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ }); await expect(fillBrokenTokenTooltip).toBeVisible(); await expect(fillBrokenTokenTooltip).toHaveText( - "{blue} does not exists or has been deleted.", + "{blue} token does not exist or has been deleted.", ); // ------------------------------------ // Select text layer with deleted token @@ -1905,7 +1905,7 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ }); await expect(brokenTypographyTokenTooltip).toBeVisible(); await expect(brokenTypographyTokenTooltip).toHaveText( - "{deleted-typo} does not exists or has been deleted.", + "{deleted-typo} token does not exist or has been deleted.", ); // --------------------------------------------------- @@ -1925,13 +1925,13 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ .click(); await expect(borderRadiusSection).toBeVisible(); const deletedReferenceBrPill = borderRadiusSection.getByRole("button", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {ref-1} is not valid or is not in any active set.", }); await expect(deletedReferenceBrPill).toBeVisible(); await deletedReferenceBrPill.hover(); await expect( page.getByRole("tooltip", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {ref-1} is not valid or is not in any active set.", }), ).toBeVisible(); await expect(fillSection).toBeVisible(); @@ -1941,11 +1941,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(fillDeletedReferenceTokenPill).toBeVisible(); await fillDeletedReferenceTokenPill.hover(); const fillDeletedReferenceTokenTooltip = page.getByRole("tooltip", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {ref-grfeen} is not valid or is not in any active set.", }); await expect(fillDeletedReferenceTokenTooltip).toBeVisible(); await expect(fillDeletedReferenceTokenTooltip).toHaveText( - "Reference is not valid or is not in any active set", + "Reference in {ref-grfeen} is not valid or is not in any active set.", ); // ---------------------------------------------- @@ -1965,11 +1965,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(deletedRefTypographyTokenPill).toBeVisible(); await deletedRefTypographyTokenPill.hover(); const deletedRefTypographyTokenTooltip = page.getByRole("tooltip", { - name: "Reference is not valid or is", + name: "Reference in {ref-typo} is not valid or is", }); await expect(deletedRefTypographyTokenTooltip).toBeVisible(); await expect(deletedRefTypographyTokenTooltip).toHaveText( - "Reference is not valid or is not in any active set", + "Reference in {ref-typo} is not valid or is not in any active set.", ); await expect(fillSection).toBeVisible(); const fillTextDeletedReferenceTokenPill = fillSection.getByLabel( @@ -1981,11 +1981,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(fillTextDeletedReferenceTokenPill).toBeVisible(); await fillTextDeletedReferenceTokenPill.hover(); const fillTextDeletedReferenceTokenTooltip = page.getByRole("tooltip", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {ref-grfeen} is not valid or is not in any active set.", }); await expect(fillTextDeletedReferenceTokenTooltip).toBeVisible(); await expect(fillTextDeletedReferenceTokenTooltip).toHaveText( - "Reference is not valid or is not in any active set", + "Reference in {ref-grfeen} is not valid or is not in any active set.", ); // ----------------------------------------------------------- @@ -2005,13 +2005,13 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ .click(); await expect(borderRadiusSection).toBeVisible(); const nonActiveReferenceBrPill = borderRadiusSection.getByRole("button", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {in-br} is not valid or is not in any active set.", }); await expect(nonActiveReferenceBrPill).toBeVisible(); await nonActiveReferenceBrPill.hover(); await expect( page.getByRole("tooltip", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {in-br} is not valid or is not in any active set.", }), ).toBeVisible(); await expect(fillSection).toBeVisible(); @@ -2021,11 +2021,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(fillNonActiveReferenceTokenPill).toBeVisible(); await fillNonActiveReferenceTokenPill.hover(); const fillNonActiveReferenceTokenTooltip = page.getByRole("tooltip", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {in-color} is not valid or is not in any active set.", }); await expect(fillNonActiveReferenceTokenTooltip).toBeVisible(); await expect(fillNonActiveReferenceTokenTooltip).toHaveText( - "Reference is not valid or is not in any active set", + "Reference in {in-color} is not valid or is not in any active set.", ); // ------------------------------------------------------ // Select text layer with reference token on inactive set @@ -2044,11 +2044,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(notActiveRefTypographyTokenPill).toBeVisible(); await notActiveRefTypographyTokenPill.hover(); const notActiveRefTypographyTokenTooltip = page.getByRole("tooltip", { - name: "Reference is not valid or is", + name: "Reference in {in-typo} is not valid or is", }); await expect(notActiveRefTypographyTokenTooltip).toBeVisible(); await expect(notActiveRefTypographyTokenTooltip).toHaveText( - "Reference is not valid or is not in any active set", + "Reference in {in-typo} is not valid or is not in any active set.", ); await expect(fillSection).toBeVisible(); const fillTextNotActiveReferenceTokenPill = fillSection.getByLabel( @@ -2060,11 +2060,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(fillTextNotActiveReferenceTokenPill).toBeVisible(); await fillTextNotActiveReferenceTokenPill.hover(); const fillTextNotActiveReferenceTokenTooltip = page.getByRole("tooltip", { - name: "Reference is not valid or is not in any active set", + name: "Reference in {in-color} is not valid or is not in any active set.", }); await expect(fillTextNotActiveReferenceTokenTooltip).toBeVisible(); await expect(fillTextNotActiveReferenceTokenTooltip).toHaveText( - "Reference is not valid or is not in any active set", + "Reference in {in-color} is not valid or is not in any active set.", ); // ------------------------------------------------- @@ -2084,13 +2084,13 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ .click(); await expect(borderRadiusSection).toBeVisible(); const nonActiveBrPill = borderRadiusSection.getByRole("button", { - name: "{border-radius} is not in any active set", + name: "{border-radius} token is not in any active set", }); await expect(nonActiveBrPill).toBeVisible(); await nonActiveBrPill.hover(); await expect( page.getByRole("tooltip", { - name: "{border-radius} is not in any active set or has an invalid value", + name: "{border-radius} token is not in any active set or has an invalid value", }), ).toBeVisible(); await expect(fillSection).toBeVisible(); @@ -2100,11 +2100,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(fillNonActiveTokenPill).toBeVisible(); await fillNonActiveTokenPill.hover(); const fillNonActiveTokenTooltip = page.getByRole("tooltip", { - name: "{red} is not in any active set or has an invalid value.", + name: "{red} token is not in any active set or has an invalid value.", }); await expect(fillNonActiveTokenTooltip).toBeVisible(); await expect(fillNonActiveTokenTooltip).toHaveText( - "{red} is not in any active set or has an invalid value.", + "{red} token is not in any active set or has an invalid value.", ); // -------------------------------------------- @@ -2124,11 +2124,11 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(notActiveTypographyTokenPill).toBeVisible(); await notActiveTypographyTokenPill.hover(); const notActiveTypographyTokenTooltip = page.getByRole("tooltip", { - name: "{typo-2} is not in any active set or has an invalid value.", + name: "{typo-2} token is not in any active set or has an invalid value.", }); await expect(notActiveTypographyTokenTooltip).toBeVisible(); await expect(notActiveTypographyTokenTooltip).toHaveText( - "{typo-2} is not in any active set or has an invalid value.", + "{typo-2} token is not in any active set or has an invalid value.", ); await expect(fillSection).toBeVisible(); const fillTextNotActiveTokenPill = fillSection.getByLabel( @@ -2140,10 +2140,10 @@ test("BUG: 10471, Correct tooltip on right sidebar tokens", async ({ await expect(fillTextNotActiveTokenPill).toBeVisible(); await fillTextNotActiveTokenPill.hover(); const fillTextNotActiveTokenTooltip = page.getByRole("tooltip", { - name: "{red} is not in any active set or has an invalid value.", + name: "{red} token is not in any active set or has an invalid value.", }); await expect(fillTextNotActiveTokenTooltip).toBeVisible(); await expect(fillTextNotActiveTokenTooltip).toHaveText( - "{red} is not in any active set or has an invalid value.", + "{red} token is not in any active set or has an invalid value.", ); }); diff --git a/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs b/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs index 22291eca66..0b6958069b 100644 --- a/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs +++ b/frontend/src/app/main/ui/ds/controls/utilities/token_field.cljs @@ -55,7 +55,7 @@ (tr "ds.inputs.token-field.no-active-token-option" label) (and token-exists? token-has-errors) - (tr "workspace.tokens.ref-not-valid") + (tr "workspace.tokens.ref-not-valid" label) :else label) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs index 743038cbbe..9ca3054996 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs @@ -57,7 +57,7 @@ (tr "options.deleted-token-with-name" token-name) has-errors - (tr "workspace.tokens.ref-not-valid") + (tr "workspace.tokens.ref-not-valid" token-name) :else (mf/html [:> to/resolved-value-tooltip* {:token-name token-name diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs index 41f63f3a32..6fd4f3c654 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs @@ -120,14 +120,14 @@ (tr "options.deleted-token-with-name" applied-token-name) has-errors - (tr "workspace.tokens.ref-not-valid") + (tr "workspace.tokens.ref-not-valid" applied-token-name) :else (tr "workspace.tokens.resolved-value" resolved)) name-tooltip-content (cond has-errors - (tr "workspace.tokens.ref-not-valid") + (tr "workspace.tokens.ref-not-valid" applied-token-name) not-active (tr "ds.inputs.token-field.no-active-token-option" applied-token-name) diff --git a/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs b/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs index 64191793a9..c4f636db79 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/token_pill.cljs @@ -127,7 +127,7 @@ (cond ;; If there are errors, show the appropriate message ref-not-in-active-set - (tr "workspace.tokens.ref-not-valid") + (tr "workspace.tokens.ref-not-valid" name) is-name-collision (wte/resolve-error-message (first errors)) diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index 86ac2cac0d..c2ca628374 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -6309,9 +6309,6 @@ msgstr "Momentálně nemáte žádné motivy." msgid "workspace.tokens.original-value" msgstr "Původní hodnota: %s" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Reference není platná nebo není v žádné aktivní sadě" #: src/app/main/data/workspace/tokens/warnings.cljs:15, src/app/main/data/workspace/tokens/warnings.cljs:19, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:59, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:87, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:105, src/app/main/ui/workspace/tokens/management/forms/controls/color_input.cljs:296, src/app/main/ui/workspace/tokens/management/forms/controls/color_input.cljs:489, src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs:298, src/app/main/ui/workspace/tokens/management/forms/controls/fonts_combobox.cljs:189, src/app/main/ui/workspace/tokens/management/forms/controls/fonts_combobox.cljs:324, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:259, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:381, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:505, src/app/main/ui/workspace/tokens/management/token_pill.cljs:123 #, fuzzy diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 51f87e31e4..ace9f6f860 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -1295,10 +1295,6 @@ msgstr "Keine Treffer gefunden." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Token-Liste öffnen" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} ist nicht Teil eines aktiven Sets oder ungültig." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Auth-Provider für dieses Profil nicht erlaubt" @@ -7836,10 +7832,6 @@ msgstr "Innenabstände" msgid "workspace.tokens.radius" msgstr "Radius" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referenz ist ungültig oder befindet sich nicht in einem aktiven Set" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Geben Sie einen Typografie-Alias für diesen Token ein" diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 2befc9634b..5e0b37eed6 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1471,7 +1471,7 @@ msgstr "Open token list" #: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} is not in any active set or has an invalid value." +msgstr "{%s} token is not in any active set or has an invalid value." #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" @@ -4480,10 +4480,6 @@ msgstr "Cancel subscription" msgid "nitrate.subscription.settings.renew-with-code" msgstr "Renew with activation code" -#: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:44, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:103, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:110 -msgid "not-active-token.no-name" -msgstr "This token is not in any active set or has an invalid value." - #: src/app/main/ui/static.cljs:309 msgid "not-found.desc-message.doesnt-exist" msgstr "This page doesn't exist" @@ -5026,12 +5022,12 @@ msgstr "Penpot" #: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:42, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:101, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:108 msgid "options.deleted-token" -msgstr "This token does not exists or has been deleted." +msgstr "This token does not exist or has been deleted." #: src/app/main/ui/ds/controls/utilities/token_field.cljs msgid "options.deleted-token-with-name" -msgstr "{%s} does not exists or has been deleted." +msgstr "{%s} token does not exist or has been deleted." #: src/app/plugins/utils.cljs:318 msgid "plugins.validation.message" @@ -9465,7 +9461,7 @@ msgstr "Radius" #: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 msgid "workspace.tokens.ref-not-valid" -msgstr "Reference is not valid or is not in any active set" +msgstr "Reference in {%s} is not valid or is not in any active set." #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index cac40d58be..1d5844e27c 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -4348,10 +4348,6 @@ msgstr "Cancelar subscripción" msgid "nitrate.subscription.settings.renew-with-code" msgstr "Renovar con código de activación" -#: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:44, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:103, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:110 -msgid "not-active-token.no-name" -msgstr "Este token no está disponible en ningún set o tiene un valor inválido." - #: src/app/main/ui/static.cljs:309 msgid "not-found.desc-message.doesnt-exist" msgstr "Esta página no existe" @@ -4899,7 +4895,7 @@ msgstr "Este token no existe o ha sido borrado." #: src/app/main/ui/ds/controls/utilities/token_field.cljs msgid "options.deleted-token-with-name" -msgstr "{%s} no existe o ha sido borrado." +msgstr "El token {%s} no existe o ha sido borrado." #: src/app/main/ui/auth/recovery.cljs:88 msgid "profile.recovery.go-to-login" @@ -9169,7 +9165,7 @@ msgstr "Valor original: %s" #: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 msgid "workspace.tokens.ref-not-valid" -msgstr "La referencia no es válida o no se encuentra en ningún set activo." +msgstr "La referencia en {%s} no es válida o no se encuentra en ningún set activo." #: src/app/main/ui/workspace/tokens/style_dictionary.cljs #, unused diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 45e41e1aee..b950cdba88 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -1294,10 +1294,6 @@ msgstr "Aucune correspondance." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Ouvrir la liste des tokens" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} n'est pas disponible dans la collection ou le thème actif." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Le fournisseur d'authentification n'est pas autorisé pour ce profil" @@ -8119,10 +8115,6 @@ msgstr "Marges intérieures" msgid "workspace.tokens.radius" msgstr "Rayons" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "La référence n'est pas valide ou n'est pas dans une collection active" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Entrer un alias de typographie pour un token" diff --git a/frontend/translations/fr_CA.po b/frontend/translations/fr_CA.po index 165f18fcf8..155f014914 100644 --- a/frontend/translations/fr_CA.po +++ b/frontend/translations/fr_CA.po @@ -1482,10 +1482,6 @@ msgstr "Aucun résultat trouvé." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Ouvrir la liste de tokens" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} n'est disponible dans aucune collection ou est invalide." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Fournisseur d'authentification non permis pour ce profil utilisateur" @@ -4510,10 +4506,6 @@ msgstr "Annuler l'abonnement" msgid "nitrate.subscription.settings.renew-with-code" msgstr "Renouveler avec code d'activation" -#: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:44, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:103, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:110 -msgid "not-active-token.no-name" -msgstr "Ce token n'est disponible dans aucun ensemble ou a une valeur invalide." - #: src/app/main/ui/static.cljs:309 msgid "not-found.desc-message.doesnt-exist" msgstr "Cette page n'existe pas" @@ -9426,10 +9418,6 @@ msgstr "Marges intérieures" msgid "workspace.tokens.radius" msgstr "Rayon" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "La référence est invalide ou n'existe dans aucun ensemble actif" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Entrer un alias de token typographique" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 9f91b1f22c..86a2902561 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -7994,10 +7994,6 @@ msgstr "ריפודים" msgid "workspace.tokens.radius" msgstr "רדיוס" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "ההפניה לא תקפה או שאינה באף סדרה פעילה" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "נא למלא כינוי לטיפוגרפיית אסימון" diff --git a/frontend/translations/hi.po b/frontend/translations/hi.po index f69af6749f..abf488c3c7 100644 --- a/frontend/translations/hi.po +++ b/frontend/translations/hi.po @@ -7929,10 +7929,6 @@ msgstr "पैडिंग्स" msgid "workspace.tokens.radius" msgstr "त्रिज्या" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "संदर्भ मान्य नहीं है या किसी सक्रिय सेट में नहीं है" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "token टाइपोग्राफी उपनाम दर्ज करें" diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index 398e7df7ba..48f51ca038 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -6330,10 +6330,6 @@ msgstr "Trenutno nemate nijednu temu." msgid "workspace.tokens.original-value" msgstr "Izvorna vrijednost: %s" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referenca nije važeća ili nije ni u jednom aktivnom skupu" - #: src/app/main/data/workspace/tokens/warnings.cljs:15, src/app/main/data/workspace/tokens/warnings.cljs:19, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:59, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:87, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:105, src/app/main/ui/workspace/tokens/management/forms/controls/color_input.cljs:296, src/app/main/ui/workspace/tokens/management/forms/controls/color_input.cljs:489, src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs:298, src/app/main/ui/workspace/tokens/management/forms/controls/fonts_combobox.cljs:189, src/app/main/ui/workspace/tokens/management/forms/controls/fonts_combobox.cljs:324, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:259, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:381, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:505, src/app/main/ui/workspace/tokens/management/token_pill.cljs:123 #, fuzzy msgid "workspace.tokens.resolved-value" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index b1696a7ed6..90db0f9f87 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -6675,10 +6675,6 @@ msgstr "Padding" msgid "workspace.tokens.radius" msgstr "Radius" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referensi tidak valid atau tidak dalam set aktif mana pun" - #: src/app/main/ui/workspace/tokens/style_dictionary.cljs #, unused msgid "workspace.tokens.reference-error" diff --git a/frontend/translations/it.po b/frontend/translations/it.po index 2fbab4a7e8..b811089f0f 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -1485,10 +1485,6 @@ msgstr "Nessuna corrispondenza trovata." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Apri elenco token" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} non è disponibile in nessun set o tema attivo." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Provider di autenticazione non consentito per questo profilo" @@ -4041,10 +4037,6 @@ msgstr "" msgid "modals.update-remote-component.message" msgstr "Aggiorna un componente in una libreria condivisa" -#: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:44, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:103, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:110 -msgid "not-active-token.no-name" -msgstr "Questo token non è presente in alcun set attivo o ha un valore non valido." - #: src/app/main/ui/static.cljs:309 msgid "not-found.desc-message.doesnt-exist" msgstr "Questa pagina non esiste" @@ -8543,10 +8535,6 @@ msgstr "Padding" msgid "workspace.tokens.radius" msgstr "Raggio" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Il riferimento non è valido o non è presente in nessun set attivo" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Inserisci un alias tipografico del token" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 2c2ceb3199..3edbf9ec7c 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -1225,10 +1225,6 @@ msgstr "일치하는 항목이 없습니다." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "token 목록 열기" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "이 token은 활성 세트에 없거나 유효하지 않은 값을 가지고 있습니다." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "이 프로필에 허용되지 않는 인증 제공자입니다" @@ -7713,10 +7709,6 @@ msgstr "패딩" msgid "workspace.tokens.radius" msgstr "반지름" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "참조가 유효하지 않거나 활성 세트에 없습니다" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "타이포그래피 token 별칭 입력" diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index d6079c624b..5b9a3bd783 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -7476,10 +7476,6 @@ msgstr "Atbīdes" msgid "workspace.tokens.radius" msgstr "Rādiuss" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Atsauce nav derīga vai tā nav nevienā aktīvā kopā" - #: src/app/main/ui/workspace/tokens/style_dictionary.cljs #, unused msgid "workspace.tokens.reference-error" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 24c6f0ffda..73c61f65b7 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -1283,10 +1283,6 @@ msgstr "Geen overeenkomsten gevonden." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Lijst met tokens openen" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} is niet beschikbaar in een actieve verzameling of thema." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Auth-provider is niet toegestaan voor dit profiel" @@ -8125,10 +8121,6 @@ msgstr "Vulling" msgid "workspace.tokens.radius" msgstr "Radius" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referentie is niet geldig of zit niet in een actieve verzameling" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Voer een alias voor tokentypografie in" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 5a179dc418..254c1e0739 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1108,10 +1108,6 @@ msgstr "Nenhum resultado encontrado." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Abrir lista de tokens" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} não está em nenhum conjunto ativo ou possui um valor inválido." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Provedor de autenticação não permitido para este perfil" diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 9852d7c33e..2d144522a0 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -1125,10 +1125,6 @@ msgstr "Nu a fost găsit nimic." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Deschide lista de token-uri" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} nu este în nici un set activ sau are o valoare invalidă." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Furnizor de autentificare neautorizat pentru acest profil" @@ -7753,10 +7749,6 @@ msgstr "Margini interioare" msgid "workspace.tokens.radius" msgstr "Raze" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referința nu este validă sau nu este în nici unul dintre seturile active" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Introdu un alias de token tipografic" diff --git a/frontend/translations/sv.po b/frontend/translations/sv.po index 07f2a724a1..6fd1291104 100644 --- a/frontend/translations/sv.po +++ b/frontend/translations/sv.po @@ -1470,10 +1470,6 @@ msgstr "Inga träffar hittades." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Öppna token-lista" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} är inte i någon aktiv uppsättning eller har ett ogiltigt värde." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Autentiseringsleverantör inte tillåten för denna profil" @@ -4478,12 +4474,6 @@ msgstr "Avsluta prenumeration" msgid "nitrate.subscription.settings.renew-with-code" msgstr "Förnya med aktiveringskod" -#: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:44, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:103, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:110 -msgid "not-active-token.no-name" -msgstr "" -"Denna token finns inte i någon aktiv uppsättning eller har ett ogiltigt " -"värde." - #: src/app/main/ui/static.cljs:309 msgid "not-found.desc-message.doesnt-exist" msgstr "Denna sida existerar inte" @@ -9373,10 +9363,6 @@ msgstr "Utfyllnader" msgid "workspace.tokens.radius" msgstr "Radie" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referensen är inte giltig eller finns inte i någon aktiv uppsättning" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Ange ett alias för token-typografi" diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 84dfb3ef0c..81c47e32fb 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -1479,10 +1479,6 @@ msgstr "Eşleşme bulunamadı." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Token listesini aç" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "{%s} herhangi bir etkin kümede bulunmuyor veya geçersiz bir değere sahip." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Kimlik doğrulama sağlayıcısına bu profil için izin verilmiyor" @@ -4483,12 +4479,6 @@ msgstr "Aboneliği iptal et" msgid "nitrate.subscription.settings.renew-with-code" msgstr "Etkinleştirme koduyla yenile" -#: src/app/main/ui/workspace/sidebar/options/menus/token_typography_row.cljs:44, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:103, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:110 -msgid "not-active-token.no-name" -msgstr "" -"Bu token herhangi bir etkin kümede yer almıyor veya geçersiz bir değere " -"sahip." - #: src/app/main/ui/static.cljs:309 msgid "not-found.desc-message.doesnt-exist" msgstr "Bu sayfa yok" @@ -9380,10 +9370,6 @@ msgstr "Dolgular" msgid "workspace.tokens.radius" msgstr "Yarıçap" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Referans geçerli değil veya herhangi bir etkin kümede bulunmuyor" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Bir token tipografi takma adı girin" diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index 5535913a4a..b2273c7c8d 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -1282,12 +1282,6 @@ msgstr "Збігів не виявлено." msgid "ds.inputs.numeric-input.open-token-list-dropdown" msgstr "Відкрити список токенів" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:48 -msgid "ds.inputs.token-field.no-active-token-option" -msgstr "" -"Цей токен не міститься в жодному з активних наборів або має недійсне " -"значення." - #: src/app/main/data/auth.cljs:346 msgid "errors.auth-provider-not-allowed" msgstr "Провайдер автентифікації не дозволений для цього профілю" @@ -8041,10 +8035,6 @@ msgstr "Внутрішні відступи" msgid "workspace.tokens.radius" msgstr "Радіус" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "Посилання помилкове або ні на одному із активних наборів" - #: src/app/main/ui/workspace/tokens/management/forms/typography.cljs:176 msgid "workspace.tokens.reference-composite" msgstr "Введіть псевдо токену типографіки" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index e7f740f919..774e9740c6 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -7022,10 +7022,6 @@ msgstr "内边距" msgid "workspace.tokens.radius" msgstr "圆角半径" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "引用无效或不在任何活动集中" - #: src/app/main/ui/workspace/tokens/style_dictionary.cljs #, unused msgid "workspace.tokens.reference-error" diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 9738082837..69cb17b494 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -6149,10 +6149,6 @@ msgstr "現主時您沒有任何主題。" msgid "workspace.tokens.original-value" msgstr "原始值:%s" -#: src/app/main/ui/ds/controls/utilities/token_field.cljs:47, src/app/main/ui/workspace/tokens/management/token_pill.cljs:130 -msgid "workspace.tokens.ref-not-valid" -msgstr "參照無效或不在任何啟用的集內" - #: src/app/main/data/workspace/tokens/warnings.cljs:15, src/app/main/data/workspace/tokens/warnings.cljs:19, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:59, src/app/main/ui/workspace/colorpicker/color_tokens.cljs:87, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:105, src/app/main/ui/workspace/tokens/management/forms/controls/color_input.cljs:296, src/app/main/ui/workspace/tokens/management/forms/controls/color_input.cljs:489, src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs:298, src/app/main/ui/workspace/tokens/management/forms/controls/fonts_combobox.cljs:189, src/app/main/ui/workspace/tokens/management/forms/controls/fonts_combobox.cljs:324, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:259, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:381, src/app/main/ui/workspace/tokens/management/forms/controls/input.cljs:505, src/app/main/ui/workspace/tokens/management/token_pill.cljs:123 #, fuzzy msgid "workspace.tokens.resolved-value" From 1006efc571780ac38bb10d5b519d70a0c4db1e44 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 1 Jul 2026 14:38:08 +0200 Subject: [PATCH 09/24] :bug: Fix translation strings --- frontend/translations/ar.po | 5 ++--- frontend/translations/ca.po | 5 ++--- frontend/translations/cs.po | 5 ++--- frontend/translations/de.po | 5 ++--- frontend/translations/en.po | 10 ++-------- frontend/translations/es.po | 5 ++--- frontend/translations/es_419.po | 5 ++--- frontend/translations/eu.po | 5 ++--- frontend/translations/fa.po | 5 ++--- frontend/translations/fr.po | 5 ++--- frontend/translations/fr_CA.po | 5 ++--- frontend/translations/gl.po | 5 ++--- frontend/translations/ha.po | 5 ++--- frontend/translations/he.po | 5 ++--- frontend/translations/hi.po | 5 ++--- frontend/translations/hr.po | 5 ++--- frontend/translations/id.po | 5 ++--- frontend/translations/it.po | 5 ++--- frontend/translations/ko.po | 4 ++-- frontend/translations/lt.po | 5 ++--- frontend/translations/lv.po | 5 ++--- frontend/translations/ms.po | 5 ++--- frontend/translations/nl.po | 5 ++--- frontend/translations/pl.po | 5 ++--- frontend/translations/pt_BR.po | 5 ++--- frontend/translations/pt_PT.po | 5 ++--- frontend/translations/ro.po | 5 ++--- frontend/translations/ru.po | 5 ++--- frontend/translations/sr.po | 5 ++--- frontend/translations/sv.po | 5 ++--- frontend/translations/tr.po | 5 ++--- frontend/translations/ukr_UA.po | 5 ++--- frontend/translations/zh_CN.po | 5 ++--- frontend/translations/zh_Hant.po | 5 ++--- 34 files changed, 68 insertions(+), 106 deletions(-) diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index 75c07dcf3a..74f6695812 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -393,9 +393,8 @@ msgstr "صدّر التحديد" msgid "dashboard.export-standard-multi" msgstr "تحميل %s ملفات أساسية (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "ملف أو أكثر تريد تصديرهم يستخدمون مكتبات مشتركة. ماذا تريد أن تفعل في " "أصولهم*؟" diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index 2739db1bce..dcbe371cc6 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -381,9 +381,8 @@ msgstr "Selecció d'exportació" msgid "dashboard.export-standard-multi" msgstr "Baixa %s fitxers estàndard (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Un o més fitxers que voleu exportar utilitzen biblioteques compartides. Què " "voleu fer amb els seus recursos*?" diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index 3657d89e77..608d6955c5 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -531,9 +531,8 @@ msgstr "Výběr exportu" msgid "dashboard.export-standard-multi" msgstr "Stáhnout %s soubory (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Jeden nebo více souborů, které chcete exportovat, používá sdílené knihovny. " "Co chcete dělat s jejich položkami*?" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index e74244a898..e2189b6732 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -650,9 +650,8 @@ msgstr "Auswahl exportieren" msgid "dashboard.export-standard-multi" msgstr "%s Standarddateien herunterladen (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Eine oder mehrere Dateien, die Sie exportieren möchten, verwenden geteilte " "Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken " diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 6ee5b9c4fa..b8f58e1f9c 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -596,13 +596,6 @@ msgstr "Export selection" msgid "dashboard.export-standard-multi" msgstr "Download %s standard files (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" -msgstr "" -"One or more files that you want to download are using shared libraries. " -"What do you want to do with their assets*?" - #: src/app/main/ui/dashboard/file_menu.cljs:266 msgid "dashboard.file-menu.delete-files-permanently-option" msgid_plural "dashboard.file-menu.delete-files-permanently-option" @@ -1839,9 +1832,10 @@ msgid "feedback.type.issue" msgstr "Issue" #: src/app/main/ui/exports/files.cljs:132 -#, fuzzy msgid "files-download-modal.description-1" msgstr "" +"One or more files that you want to download are using shared libraries. " +"What do you want to do with their assets*?" #: src/app/main/ui/exports/files.cljs:133 msgid "files-download-modal.description-2" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index d0a915e4a8..19baa238c5 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -595,9 +595,8 @@ msgstr "Exportar selección" msgid "dashboard.export-standard-multi" msgstr "Descargar %s archivos estándar (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Uno o mas ficheros que quieres descargar usan librerias compartidas. ¿Qué " "quieres hacer con los recursos*?" diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po index 62bbba3ac6..57f7f3877d 100644 --- a/frontend/translations/es_419.po +++ b/frontend/translations/es_419.po @@ -445,9 +445,8 @@ msgstr "Selección de exportación" msgid "dashboard.export-standard-multi" msgstr "Descargar %s archivos estándar (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Uno o más archivos que desea exportar utilizan bibliotecas compartidas. " "¿Qué quiere hacer con sus activos*?" diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po index 0e785e852a..91d0b2fdc8 100644 --- a/frontend/translations/eu.po +++ b/frontend/translations/eu.po @@ -359,9 +359,8 @@ msgstr "Esportatu aukeraketa" msgid "dashboard.export-standard-multi" msgstr "Deskargatu %s fitxategi estandar (.svn + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Esportatu nahi duzun fitxategi bat edo gehiagok partekatutako liburutegiak " "darabiltzate. Zer egin nahi duzu baliabideekin*?" diff --git a/frontend/translations/fa.po b/frontend/translations/fa.po index 14e02fc6eb..1d253083e5 100644 --- a/frontend/translations/fa.po +++ b/frontend/translations/fa.po @@ -492,9 +492,8 @@ msgstr "انتخاب اکسپورت" msgid "dashboard.export-standard-multi" msgstr "دانلود %s عدد فایل های استاندارد (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "یک یا چند فایلی که می‌خواهید اکسپورت کنید از کتابخانه‌های مشترک استفاده " "می‌کنند. با دارایی‌های آن‌ها چه می‌خواهید بکنید*؟" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index c65ce98b8e..e8923f08fb 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -657,9 +657,8 @@ msgstr "Exporter la sélection" msgid "dashboard.export-standard-multi" msgstr "Télécharger %s fichiers standard (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Un ou plusieurs fichiers que vous souhaitez exporter utilisent des " "bibliothèques partagées. Que voulez-vous faire avec leurs ressources ?" diff --git a/frontend/translations/fr_CA.po b/frontend/translations/fr_CA.po index 27a5e058a3..f422818ec9 100644 --- a/frontend/translations/fr_CA.po +++ b/frontend/translations/fr_CA.po @@ -656,9 +656,8 @@ msgstr "Exporter la sélection" msgid "dashboard.export-standard-multi" msgstr "Télécharger %s fichiers standard (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Un ou plus des fichiers que tu veux télécharger utilisent une bibliothèque " "partagée. Que veux-tu faire avec ces atouts*?" diff --git a/frontend/translations/gl.po b/frontend/translations/gl.po index bbd5cf8b61..caa3ecd2fb 100644 --- a/frontend/translations/gl.po +++ b/frontend/translations/gl.po @@ -357,9 +357,8 @@ msgstr "Exportar selección" msgid "dashboard.export-standard-multi" msgstr "Descargar %s ficheiros estándar (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Un ou máis ficheiros dos que queres exportar usan bibliotecas compartidas. " "Que queres facer cos recursos?" diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index 19e377aa3d..adbc4248af 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -422,9 +422,8 @@ msgstr "Fitar da zavi" msgid "dashboard.export-standard-multi" msgstr "Sauke %s cikakken kundi (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "za ka iya fitar da kundi daya ko fiye ta hanyar tura taska. \"me \"*?" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:322 diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 6f6d5cfe57..34af1c3825 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -567,9 +567,8 @@ msgstr "ייצוא הבחירה" msgid "dashboard.export-standard-multi" msgstr "הורדת %s קבצים תקניים (‎.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "אחד או יותר מהקבצים שברצונך לייצא משתמשים בספריות משותפות. מה לעשות עם " "המשאבים שלהן*?" diff --git a/frontend/translations/hi.po b/frontend/translations/hi.po index a13ef70427..933edb12f8 100644 --- a/frontend/translations/hi.po +++ b/frontend/translations/hi.po @@ -631,9 +631,8 @@ msgstr "निर्यात चयन" msgid "dashboard.export-standard-multi" msgstr "%s मानक फ़ाइलें डाउनलोड करें (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "एक या एक से अधिक फ़ाइलें जिन्हें आप निर्यात करना चाहते हैं, वे साझा की गई " "लाइब्रेरीज़ का उपयोग कर रही हैं। आप उनके एसेट्स के साथ क्या करना चाहते हैं?" diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index 3420ac275f..a9cb949f94 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -530,9 +530,8 @@ msgstr "Izvezi odabir" msgid "dashboard.export-standard-multi" msgstr "Preuzmi %s standardne datoteke (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Jedna ili više datoteka koju želiš izvesti koristi zajedničke biblioteke. " "Što želiš učiniti s njihovim stavkama*?" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 3c1d278095..fac7e76d08 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -563,9 +563,8 @@ msgstr "Ekspor pilihan" msgid "dashboard.export-standard-multi" msgstr "Unduh %s berkas standar (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Satu atau lebih berkas yang ingin Anda ekspor menggunakan pustaka bersama. " "Apa yang ingin Anda lakukan dengan asetnya*?" diff --git a/frontend/translations/it.po b/frontend/translations/it.po index dbede0245a..da39defaa7 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -652,9 +652,8 @@ msgstr "Esporta selezionati" msgid "dashboard.export-standard-multi" msgstr "Scarica %s file standard (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Uno o più file che desideri scaricare utilizzano librerie condivise. Che " "cosa desideri fare con le loro risorse*?" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index f7d4881b6f..ca748a1817 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -1298,8 +1298,8 @@ msgstr "선택 영역 내보내기" msgid "dashboard.export-standard-multi" msgstr "표준 파일 %s개(.svg + .json) 다운로드" -#: src/app/main/ui/exports/files.cljs:155 -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "다운로드하려는 하나 이상의 파일이 공유 라이브러리를 사용 중입니다. 해당 에셋*" "을 어떻게 처리하시겠습니까?" diff --git a/frontend/translations/lt.po b/frontend/translations/lt.po index 506272cbba..2285c4117f 100644 --- a/frontend/translations/lt.po +++ b/frontend/translations/lt.po @@ -333,9 +333,8 @@ msgstr "Nėra elementų su eksporto nustatymais." msgid "dashboard.export-shapes.title" msgstr "Eksportuoti pažymėtą sritį" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Viename ar keliuose failuose, kuriuos norite eksportuoti, naudojamos " "bendros bibliotekos. Ką norite daryti su jų komponentais*?" diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index eebc97d0fb..34e690468f 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -580,9 +580,8 @@ msgstr "Izgūt atlasi" msgid "dashboard.export-standard-multi" msgstr "Lejupielādēt %s standarta datnes (. svg +. json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Viena vai vairākas lejupielādējamās datnes izmanto koplietojamas " "bibliotēkas. Ko iesākt ar to līdzekļiem*?" diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index cdfd2be839..a9aa84e800 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -427,9 +427,8 @@ msgstr "Eksport Pemilihan" msgid "dashboard.export-standard-multi" msgstr "Muat turun %s fail standard (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Satu atau lebih fail yang anda ingin eksport menggunakan perpustakaan " "kongsi. Apa yang anda mahu lakukan dengan aset mereka*?" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 67fb439590..7dadd3c0e5 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -654,9 +654,8 @@ msgstr "Selectie exporteren" msgid "dashboard.export-standard-multi" msgstr "%s standaardbestanden downloaden (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Een of meer bestanden die je wilt downloaden maken gebruik van gedeelde " "bibliotheken. Wat wil je doen met hun assets*?" diff --git a/frontend/translations/pl.po b/frontend/translations/pl.po index a0e4c914e8..2702370471 100644 --- a/frontend/translations/pl.po +++ b/frontend/translations/pl.po @@ -361,9 +361,8 @@ msgstr "Eksportuj wybrane" msgid "dashboard.export-standard-multi" msgstr "Pobierz %s plików standardowych (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Co najmniej jeden plik, który chcesz wyeksportować, korzysta z bibliotek " "udostępnionych. Co chcesz zrobić z ich zasobami*?" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index eb14ed44e8..79f37c8429 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -570,9 +570,8 @@ msgstr "Exportar seleção" msgid "dashboard.export-standard-multi" msgstr "Baixar %s arquivos padrões (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Um ou mais arquivos que você deseja exportar estão usando bibliotecas " "compartilhadas. O que você quer fazer com seus recursos*?" diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index c839a9496e..7ea2243750 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -544,9 +544,8 @@ msgstr "Exportar seleção" msgid "dashboard.export-standard-multi" msgstr "Descarregar %s ficheiros standard (svg + json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Um ou mais ficheiros que queres exportar estão a utilizar bibliotecas " "partilhadas. O que queres fazer com os recursos*?" diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 8995460842..b67998552c 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -579,9 +579,8 @@ msgstr "Exportă selecția" msgid "dashboard.export-standard-multi" msgstr "Descarcă %s fișiere standard (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Unul sau mai multe fișiere pe care dorești să le exporți folosesc " "biblioteci partajate. Ce vrei să faci cu obiectele lor*?" diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 58891a8f46..f2227fcd59 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -564,9 +564,8 @@ msgstr "Выбор экспорта" msgid "dashboard.export-standard-multi" msgstr "Скачать стандартные файлы (.svg + .json) (%s)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Один или несколько файлов на экспорт используют общие библиотеки. Что нужно " "сделать с их ресурсами*?" diff --git a/frontend/translations/sr.po b/frontend/translations/sr.po index 325ad703c3..22088ebf84 100644 --- a/frontend/translations/sr.po +++ b/frontend/translations/sr.po @@ -480,9 +480,8 @@ msgstr "Избор извоза" msgid "dashboard.export-standard-multi" msgstr "Преузмите &s стандардних датотека (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Једна или више датотека које желите да извезете користе дељене библиотеке. " "Шта желите да урадите са њиховим средстрвима*?" diff --git a/frontend/translations/sv.po b/frontend/translations/sv.po index a25e459c0b..38f4e9098a 100644 --- a/frontend/translations/sv.po +++ b/frontend/translations/sv.po @@ -571,9 +571,8 @@ msgstr "Exportera markerade" msgid "dashboard.export-standard-multi" msgstr "Ladda ner %s standardfiler (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "En eller flera filer som du vill exportera använder delade bibliotek. Vad " "vill du göra med deras tillgångar*?" diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 25dd416b81..730007fa8b 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -651,9 +651,8 @@ msgstr "Seçimi dışa aktar" msgid "dashboard.export-standard-multi" msgstr "%s standart dosyayı indir (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "İndirmek istediğiniz bir veya daha fazla dosya, paylaşılan kütüphaneleri " "kullanıyor. Bunların varlıklarıyla ne yapmak istiyorsunuz*?" diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index db6e7f5370..d86cf18f47 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -566,9 +566,8 @@ msgstr "Вибір експорту" msgid "dashboard.export-standard-multi" msgstr "Завантажити %s стандартних файлів (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "" "Файли, які Ви хочете експортувати, використовують спільні бібліотеки. Що " "плануєте зробити з їхніми ресурсами*?" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 49dfdfabdc..f619a5d57e 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -538,9 +538,8 @@ msgstr "导出已选中" msgid "dashboard.export-standard-multi" msgstr "下载 %s 标准文件 (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "你想导出的一个或多个文件用到了共享库。你想怎么处理它们的素材?" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:322 diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 2620c9ec0d..5fc4a41085 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -509,9 +509,8 @@ msgstr "匯出已選取項目" msgid "dashboard.export-standard-multi" msgstr "下載%s個標準檔案 (.svg + .json)" -#: src/app/main/ui/exports/files.cljs:155 -#, unused -msgid "dashboard.export.explain" +#: src/app/main/ui/exports/files.cljs:132 +msgid "files-download-modal.description-1" msgstr "你想匯出的單個或多個檔案中使用了共用資料庫,你想要如何處理它們的素材*?" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:322 From e6a341ff301b95b2660c31229d96885b58f13915 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 1 Jul 2026 14:39:34 +0200 Subject: [PATCH 10/24] :bug: Fix text layout item menu (#10516) --- .../src/app/main/ui/workspace/sidebar/options/shapes/text.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs index de2ddd2ed0..9b3005ecea 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs @@ -171,7 +171,7 @@ :cell (ctl/get-cell-by-shape-id (first parents) (first ids))}]) (when is-layout-child? - [:& layout-item-menu* + [:> layout-item-menu* {:ids ids :type type :values layout-item-values From 6cc2c403c4fbba0ed0a11359cd38a0d5a65c8dfa Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 1 Jul 2026 14:45:41 +0200 Subject: [PATCH 11/24] :arrow_up: Update dependencies --- docs/package.json | 12 +- docs/pnpm-lock.yaml | 28 +- docs/pnpm-workspace.yaml | 3 + frontend/package.json | 10 +- frontend/pnpm-lock.yaml | 564 ++++------------ frontend/text-editor/package.json | 4 +- mcp/package.json | 2 +- mcp/packages/plugin/package.json | 2 +- mcp/packages/server/package.json | 8 +- mcp/pnpm-lock.yaml | 87 +-- mcp/pnpm-workspace.yaml | 4 + .../apps/plugin-api-test-suite/package.json | 2 +- plugins/libs/plugins-runtime/package.json | 4 +- plugins/package.json | 14 +- plugins/pnpm-lock.yaml | 630 ++++++++---------- plugins/pnpm-workspace.yaml | 16 + 16 files changed, 532 insertions(+), 858 deletions(-) diff --git a/docs/package.json b/docs/package.json index cf16fae313..299d497e48 100644 --- a/docs/package.json +++ b/docs/package.json @@ -27,16 +27,16 @@ "@11ty/eleventy": "^3.1.6", "@11ty/eleventy-navigation": "^1.0.5", "@11ty/eleventy-plugin-rss": "^3.0.0", - "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0", + "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2", "@tigersway/eleventy-plugin-ancestry": "^1.0.3", "@types/markdown-it": "14.1.2", "elasticlunr": "^0.9.5", - "eleventy-plugin-metagen": "^1.8.3", + "eleventy-plugin-metagen": "^1.8.4", "eleventy-plugin-nesting-toc": "^1.3.0", - "eleventy-plugin-youtube-embed": "^1.10.2", - "luxon": "^3.4.4", - "markdown-it": "^14.1.0", - "markdown-it-anchor": "^9.0.1", + "eleventy-plugin-youtube-embed": "^1.13.2", + "luxon": "^3.7.2", + "markdown-it": "^14.2.0", + "markdown-it-anchor": "^9.2.0", "markdown-it-plantuml": "^1.4.1" }, "packageManager": "pnpm@11.9.0+sha512.bd682d5d03fe525ef7c9fd6780c6884d1e756ac4c9c9fe00c538782824310dcf90e3ddc4f53835f06dfaebd5085e41855e0bcbb3b60de2ac5bbab89e5036f03b" diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 2ea471ca0c..d32be57396 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: specifier: ^3.0.0 version: 3.0.0 '@11ty/eleventy-plugin-syntaxhighlight': - specifier: ^5.0.0 + specifier: ^5.0.2 version: 5.0.2 '@tigersway/eleventy-plugin-ancestry': specifier: ^1.0.3 @@ -30,22 +30,22 @@ importers: specifier: ^0.9.5 version: 0.9.5 eleventy-plugin-metagen: - specifier: ^1.8.3 + specifier: ^1.8.4 version: 1.8.4 eleventy-plugin-nesting-toc: specifier: ^1.3.0 version: 1.3.0 eleventy-plugin-youtube-embed: - specifier: ^1.10.2 + specifier: ^1.13.2 version: 1.13.2 luxon: - specifier: ^3.4.4 + specifier: ^3.7.2 version: 3.7.2 markdown-it: - specifier: ^14.1.0 + specifier: ^14.2.0 version: 14.2.0 markdown-it-anchor: - specifier: ^9.0.1 + specifier: ^9.2.0 version: 9.2.0(@types/markdown-it@14.1.2)(markdown-it@14.2.0) markdown-it-plantuml: specifier: ^1.4.1 @@ -436,8 +436,8 @@ packages: resolution: {integrity: sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==} engines: {node: '>=6.0'} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + js-yaml@3.15.0: + resolution: {integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==} hasBin: true js-yaml@4.2.0: @@ -692,8 +692,8 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - undici@7.27.2: - resolution: {integrity: sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} unpipe@1.0.0: @@ -943,7 +943,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.27.2 + undici: 7.28.0 whatwg-mimetype: 4.0.0 chokidar@3.6.0: @@ -1126,7 +1126,7 @@ snapshots: gray-matter@4.0.3: dependencies: - js-yaml: 3.14.2 + js-yaml: 3.15.0 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 @@ -1188,7 +1188,7 @@ snapshots: iso-639-1@3.1.5: {} - js-yaml@3.14.2: + js-yaml@3.15.0: dependencies: argparse: 1.0.10 esprima: 4.0.1 @@ -1410,7 +1410,7 @@ snapshots: uc.micro@2.1.0: {} - undici@7.27.2: {} + undici@7.28.0: {} unpipe@1.0.0: {} diff --git a/docs/pnpm-workspace.yaml b/docs/pnpm-workspace.yaml index e69de29bb2..79b7d49256 100644 --- a/docs/pnpm-workspace.yaml +++ b/docs/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +minimumReleaseAgeExclude: + - undici@7.28.0 + - js-yaml@3.15.0 diff --git a/frontend/package.json b/frontend/package.json index 2a47553243..4e0b3f365d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -64,7 +64,7 @@ "@storybook/addon-vitest": "10.4.6", "@storybook/react-vite": "10.4.6", "@tokens-studio/sd-transforms": "2.0.3", - "@types/node": "^26.0.1", + "@types/node": "^26.1.0", "@vitest/browser": "4.1.9", "@vitest/browser-playwright": "^4.1.9", "@vitest/coverage-v8": "4.1.9", @@ -80,7 +80,7 @@ "getopts": "^2.3.0", "gettext-parser": "^9.0.2", "highlight.js": "^11.10.0", - "js-beautify": "^1.15.4", + "js-beautify": "^2.0.3", "jsdom": "^29.0.2", "lodash": "^4.18.1", "lodash.debounce": "^4.0.8", @@ -95,7 +95,7 @@ "playwright": "1.61.1", "postcss": "^8.5.16", "postcss-clean": "^1.2.2", - "postcss-modules": "^6.0.1", + "postcss-modules": "^9.0.0", "postcss-scss": "^4.0.9", "prettier": "3.9.4", "pretty-time": "^1.1.0", @@ -122,11 +122,11 @@ "tdigest": "^0.1.2", "tinycolor2": "^1.6.0", "typescript": "^6.0.2", - "vite": "^8.1.0", + "vite": "^8.1.2", "vitest": "^4.1.9", "wait-on": "^9.0.4", "watcher": "^2.3.1", - "workerpool": "^10.0.1", + "workerpool": "^10.0.3", "xregexp": "^5.1.2" } } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index edd27334f3..c11f5736a6 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -54,7 +54,7 @@ importers: version: 1.61.1 '@storybook/addon-docs': specifier: 10.4.6 - version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@storybook/addon-themes': specifier: 10.4.6 version: 10.4.6(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)) @@ -63,19 +63,19 @@ importers: version: 10.4.6(@vitest/browser-playwright@4.1.9)(@vitest/browser@4.1.9)(@vitest/runner@4.1.9)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vitest@4.1.9) '@storybook/react-vite': specifier: 10.4.6 - version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@tokens-studio/sd-transforms': specifier: 2.0.3 version: 2.0.3(style-dictionary@5.4.4(tslib@2.8.1)) '@types/node': - specifier: ^26.0.1 - version: 26.0.1 + specifier: ^26.1.0 + version: 26.1.0 '@vitest/browser': specifier: 4.1.9 - version: 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + version: 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) '@vitest/browser-playwright': specifier: ^4.1.9 - version: 4.1.9(playwright@1.61.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + version: 4.1.9(playwright@1.61.1)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) '@vitest/coverage-v8': specifier: 4.1.9 version: 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9) @@ -116,8 +116,8 @@ importers: specifier: ^11.10.0 version: 11.11.1 js-beautify: - specifier: ^1.15.4 - version: 1.15.4 + specifier: ^2.0.3 + version: 2.0.3 jsdom: specifier: ^29.0.2 version: 29.1.1(canvas@3.2.3) @@ -161,8 +161,8 @@ importers: specifier: ^1.2.2 version: 1.2.2 postcss-modules: - specifier: ^6.0.1 - version: 6.0.1(postcss@8.5.16) + specifier: ^9.0.0 + version: 9.0.0(postcss@8.5.16) postcss-scss: specifier: ^4.0.9 version: 4.0.9(postcss@8.5.16) @@ -242,11 +242,11 @@ importers: specifier: ^6.0.2 version: 6.0.3 vite: - specifier: ^8.1.0 - version: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + specifier: ^8.1.2 + version: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) vitest: specifier: ^4.1.9 - version: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) wait-on: specifier: ^9.0.4 version: 9.0.10(supports-color@5.5.0) @@ -254,8 +254,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 workerpool: - specifier: ^10.0.1 - version: 10.0.2 + specifier: ^10.0.3 + version: 10.0.3 xregexp: specifier: ^5.1.2 version: 5.1.2 @@ -307,7 +307,7 @@ importers: version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3) '@storybook/react-vite': specifier: 10.4.6 - version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@testing-library/dom': specifier: 10.4.1 version: 10.4.1 @@ -322,7 +322,7 @@ importers: version: 19.2.3(@types/react@19.2.17) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.0.3(babel-plugin-react-compiler@1.0.0)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 6.0.3(babel-plugin-react-compiler@1.0.0)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 @@ -346,7 +346,7 @@ importers: version: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) vite-plugin-dts: specifier: ^5.0.3 - version: 5.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.0.1))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 5.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.1.0))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) text-editor: devDependencies: @@ -354,11 +354,11 @@ importers: specifier: 1.61.1 version: 1.61.1 '@types/node': - specifier: ^26.0.1 - version: 26.0.1 + specifier: ^26.1.0 + version: 26.1.0 '@vitest/browser': specifier: ^4.1.9 - version: 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + version: 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) '@vitest/coverage-v8': specifier: ^4.1.9 version: 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9) @@ -381,11 +381,11 @@ importers: specifier: ^3.9.4 version: 3.9.4 vite: - specifier: ^8.1.1 - version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + specifier: ^8.1.2 + version: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) vitest: specifier: ^4.1.9 - version: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + version: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) packages: @@ -964,10 +964,6 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0': resolution: {integrity: sha512-qvsTEwEFefhdirGOPnu9Wp6ChfIwy2dBCRuETU3uE+4cC+PFoxMSiiEhxk4lOluA34eARHA0OxqsEUYDqRMgeQ==} peerDependencies: @@ -1165,8 +1161,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@one-ini/wasm@0.1.1': - resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@one-ini/wasm@0.2.1': + resolution: {integrity: sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==} '@oxc-parser/binding-android-arm-eabi@0.127.0': resolution: {integrity: sha512-0LC7ye4hvqbIKxAzThzvswgHLFu2AURKzYLeSVvLdu2TBOYWQDmHnTqPLeA597BcUCxiLqLsS4CJ5uoI5WYWCQ==} @@ -1500,10 +1496,6 @@ packages: resolution: {gitHosted: true, integrity: sha512-BxcjiWGtCbGBT+dsOnEODk1jASZLNYp27BuGQaJR7fxU4gLws3251r90Sp9seubcpRhGrfRdsA5WU0ExRdPOgg==, tarball: https://codeload.github.com/penpot/ua-parser/tar.gz/90b970f39f2dc08378b975a0f01045b4ec8e89a4} version: 1.0.0 - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@playwright/test@1.61.1': resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==} engines: {node: '>=18'} @@ -2078,8 +2070,8 @@ packages: '@types/mdx@2.0.14': resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} - '@types/node@26.0.1': - resolution: {integrity: sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==} + '@types/node@26.1.0': + resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} @@ -2194,9 +2186,9 @@ packages: resolution: {integrity: sha512-RQ4h9F6DOiHxpdocUDrOl6xBM+yOtz+LkUol47AVWcfebGBDpZ7w7Xvz9PS24JgXvLGiXXzSAfdCdVy1tPlaFA==} engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=18.0.0'} - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + abbrev@5.0.0: + resolution: {integrity: sha512-/XrFJgzQQQHpti1raDJC6m4ws6aNktmjBlhk8Fdlk7LwCEuDoieEJJY9OFHjfiFJFFRM2tK+Ky/IsfbbmlMu1w==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} @@ -2421,9 +2413,6 @@ packages: brace-expansion@1.1.15: resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@2.1.1: - resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} - brace-expansion@5.0.7: resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} @@ -2594,10 +2583,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -2912,12 +2897,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - editorconfig@1.0.4: - resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} - engines: {node: '>=14'} + editorconfig@3.0.2: + resolution: {integrity: sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==} + engines: {node: '>=20'} hasBin: true ee-first@1.1.1: @@ -3250,12 +3232,8 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} engines: {node: '>= 6'} forwarded@0.2.0: @@ -3354,11 +3332,6 @@ packages: peerDependencies: tslib: '2' - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - glob@13.0.6: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} @@ -3736,9 +3709,6 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -3746,8 +3716,8 @@ packages: resolution: {integrity: sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ==} engines: {node: '>= 20'} - js-beautify@1.15.4: - resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} + js-beautify@2.0.3: + resolution: {integrity: sha512-cyFbh3tkPhknnTD/0bLf0T0yy2ZIbqL05mttzbt4y1Zfr7NxqXQZ62dkBLKs3oHH/lpjmDRAnciJiSUyOy8XwQ==} engines: {node: '>=14'} hasBin: true @@ -3968,9 +3938,6 @@ packages: loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.5.1: resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} engines: {node: 20 || >=22} @@ -4080,10 +4047,6 @@ packages: minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -4138,8 +4101,8 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - node-abi@3.92.0: - resolution: {integrity: sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==} + node-abi@3.93.0: + resolution: {integrity: sha512-Cu6yUpX5Iavugm8BeX7c0wgU9CvOqfd1yM6A1d2q2ZMjym7GjpASv2GdRcTq3Fx+Sb5OgBkEEpw4VnAbY6Y5RA==} engines: {node: '>=10'} node-addon-api@7.1.1: @@ -4163,9 +4126,9 @@ packages: engines: {node: '>=10'} hasBin: true - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + nopt@10.0.1: + resolution: {integrity: sha512-df3sBr/6ax9hSGuC3CspvLlbnX8cP5L5nZwXF8cGN8l0zSWR6BvzmQ6jPUKjvo6+/xdpkNvEcucBNUdBeeV13g==} + engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} hasBin: true normalize-package-data@2.5.0: @@ -4320,10 +4283,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.2: resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} engines: {node: 18 || 20 || >=22} @@ -4430,8 +4389,9 @@ packages: peerDependencies: postcss: ^8.5.10 - postcss-modules@6.0.1: - resolution: {integrity: sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==} + postcss-modules@9.0.0: + resolution: {integrity: sha512-nyZGaOkHFRvXy10ryKSE3yfh1EhwSrEX2mIhwZblTTdHbKOfH5fNhAC6eZmXB2uCy7x6Bb1Zib5KS2Yw6gSzHQ==} + engines: {node: '>=20.6'} peerDependencies: postcss: ^8.5.10 @@ -5065,10 +5025,6 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -5413,8 +5369,8 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@7.25.0: - resolution: {integrity: sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} unicorn-magic@0.4.0: @@ -5518,51 +5474,8 @@ packages: vite: optional: true - vite@8.1.0: - resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 - esbuild: ^0.27.0 || ^0.28.0 - jiti: '>=1.21.0' - less: ^4.0.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.8.3 - peerDependenciesMeta: - '@types/node': - optional: true - '@vitejs/devtools': - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vite@8.1.1: - resolution: {integrity: sha512-X/05/cT+VITy2AeDc1der6smvGWWREtL4hPbPTaVbjSBuuWkmNOjR6HP3NzqcQA2nF6VHGUPaFRJyft/2AE9Kg==} + vite@8.1.2: + resolution: {integrity: sha512-6YYPbRXTxx6bRXmOn7XdnQAy5DQNHhDgtjhDHI13oe4pY93kkcdGJWxpGwOm++/Wh0QpQhDrpIoVMrmrsI5AGQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5723,17 +5636,13 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerpool@10.0.2: - resolution: {integrity: sha512-8PCeZlCwu0+8hXruze1ahYNsY+M0LOCmbmySZ9BWWqWIXP9TAXa6FZCxACTDL/0j47pFcC4xW98Gr8nAC5oymg==} + workerpool@10.0.3: + resolution: {integrity: sha512-6z2Iis68Wqth93/G/wJP9u+R3O+d2XTlgWChGCwuT1qLbBsOYueGRZuJ++v3mtDP5KjYdy+WzvWC+VWETSVXJA==} wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} @@ -6394,28 +6303,11 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.2.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: glob: 13.0.6 react-docgen-typescript: 2.4.0(typescript@6.0.3) - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) - optionalDependencies: - typescript: 6.0.3 - - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': - dependencies: - glob: 13.0.6 - react-docgen-typescript: 2.4.0(typescript@6.0.3) - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) optionalDependencies: typescript: 6.0.3 @@ -6579,24 +6471,24 @@ snapshots: '@types/react': 19.2.17 react: 19.2.7 - '@microsoft/api-extractor-model@7.32.2(@types/node@26.0.1)': + '@microsoft/api-extractor-model@7.32.2(@types/node@26.1.0)': dependencies: '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.19.1(@types/node@26.0.1) + '@rushstack/node-core-library': 5.19.1(@types/node@26.1.0) transitivePeerDependencies: - '@types/node' optional: true - '@microsoft/api-extractor@7.56.2(@types/node@26.0.1)': + '@microsoft/api-extractor@7.56.2(@types/node@26.1.0)': dependencies: - '@microsoft/api-extractor-model': 7.32.2(@types/node@26.0.1) + '@microsoft/api-extractor-model': 7.32.2(@types/node@26.1.0) '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.19.1(@types/node@26.0.1) + '@rushstack/node-core-library': 5.19.1(@types/node@26.1.0) '@rushstack/rig-package': 0.6.0 - '@rushstack/terminal': 0.21.0(@types/node@26.0.1) - '@rushstack/ts-command-line': 5.2.0(@types/node@26.0.1) + '@rushstack/terminal': 0.21.0(@types/node@26.1.0) + '@rushstack/ts-command-line': 5.2.0(@types/node@26.1.0) diff: 8.0.4 lodash: 4.18.1 minimatch: 10.2.5 @@ -6652,7 +6544,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@one-ini/wasm@0.1.1': {} + '@one-ini/wasm@0.2.1': {} '@oxc-parser/binding-android-arm-eabi@0.127.0': optional: true @@ -6854,9 +6746,6 @@ snapshots: '@penpot/ua-parser@https://codeload.github.com/penpot/ua-parser/tar.gz/90b970f39f2dc08378b975a0f01045b4ec8e89a4': {} - '@pkgjs/parseargs@0.11.0': - optional: true - '@playwright/test@1.61.1': dependencies: playwright: 1.61.1 @@ -7050,7 +6939,7 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/node-core-library@5.19.1(@types/node@26.0.1)': + '@rushstack/node-core-library@5.19.1(@types/node@26.1.0)': dependencies: ajv: 8.20.0 ajv-draft-04: 1.0.0(ajv@8.20.0) @@ -7061,12 +6950,12 @@ snapshots: resolve: 1.22.12 semver: 7.5.4 optionalDependencies: - '@types/node': 26.0.1 + '@types/node': 26.1.0 optional: true - '@rushstack/problem-matcher@0.1.1(@types/node@26.0.1)': + '@rushstack/problem-matcher@0.1.1(@types/node@26.1.0)': optionalDependencies: - '@types/node': 26.0.1 + '@types/node': 26.1.0 optional: true '@rushstack/rig-package@0.6.0': @@ -7075,18 +6964,18 @@ snapshots: strip-json-comments: 3.1.1 optional: true - '@rushstack/terminal@0.21.0(@types/node@26.0.1)': + '@rushstack/terminal@0.21.0(@types/node@26.1.0)': dependencies: - '@rushstack/node-core-library': 5.19.1(@types/node@26.0.1) - '@rushstack/problem-matcher': 0.1.1(@types/node@26.0.1) + '@rushstack/node-core-library': 5.19.1(@types/node@26.1.0) + '@rushstack/problem-matcher': 0.1.1(@types/node@26.1.0) supports-color: 8.1.1 optionalDependencies: - '@types/node': 26.0.1 + '@types/node': 26.1.0 optional: true - '@rushstack/ts-command-line@5.2.0(@types/node@26.0.1)': + '@rushstack/ts-command-line@5.2.0(@types/node@26.1.0)': dependencies: - '@rushstack/terminal': 0.21.0(@types/node@26.0.1) + '@rushstack/terminal': 0.21.0(@types/node@26.1.0) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -7103,10 +6992,10 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook/addon-docs@10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@storybook/addon-docs@10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.17)(react@19.2.7) - '@storybook/csf-plugin': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@storybook/csf-plugin': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@storybook/icons': 2.0.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@storybook/react-dom-shim': 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)) react: 19.2.7 @@ -7133,53 +7022,33 @@ snapshots: '@storybook/icons': 2.0.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7) storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) optionalDependencies: - '@vitest/browser': 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) - '@vitest/browser-playwright': 4.1.9(playwright@1.61.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + '@vitest/browser': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + '@vitest/browser-playwright': 4.1.9(playwright@1.61.1)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) '@vitest/runner': 4.1.9 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + vitest: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) transitivePeerDependencies: - react - react-dom - '@storybook/builder-vite@10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@storybook/builder-vite@10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: - '@storybook/csf-plugin': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@storybook/csf-plugin': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) ts-dedent: 2.3.0 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/builder-vite@10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': - dependencies: - '@storybook/csf-plugin': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - ts-dedent: 2.3.0 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) - transitivePeerDependencies: - - esbuild - - rollup - - webpack - - '@storybook/csf-plugin@10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@storybook/csf-plugin@10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) unplugin: 2.3.11 optionalDependencies: esbuild: 0.28.1 rollup: 4.61.1 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) - - '@storybook/csf-plugin@10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': - dependencies: - storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - unplugin: 2.3.11 - optionalDependencies: - esbuild: 0.28.1 - rollup: 4.61.1 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) '@storybook/global@5.0.0': {} @@ -7197,11 +7066,11 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@storybook/react-vite@10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@storybook/react-vite@10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@rollup/pluginutils': 5.4.0(rollup@4.61.1) - '@storybook/builder-vite': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@storybook/builder-vite': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@storybook/react': 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3) empathic: 2.0.1 magic-string: 0.30.21 @@ -7211,31 +7080,7 @@ snapshots: resolve: 1.22.12 storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) tsconfig-paths: 4.2.0 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - esbuild - - rollup - - supports-color - - typescript - - webpack - - '@storybook/react-vite@10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - '@rollup/pluginutils': 5.4.0(rollup@4.61.1) - '@storybook/builder-vite': 10.4.6(esbuild@0.28.1)(rollup@4.61.1)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - '@storybook/react': 10.4.6(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(storybook@10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(typescript@6.0.3) - empathic: 2.0.1 - magic-string: 0.30.21 - react: 19.2.7 - react-docgen: 8.0.3 - react-dom: 19.2.7(react@19.2.7) - resolve: 1.22.12 - storybook: 10.4.6(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.9.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - tsconfig-paths: 4.2.0 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -7371,7 +7216,7 @@ snapshots: '@types/mdx@2.0.14': {} - '@types/node@26.0.1': + '@types/node@26.1.0': dependencies: undici-types: 8.3.0 @@ -7387,67 +7232,36 @@ snapshots: '@types/triple-beam@1.3.5': {} - '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@1.0.0)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@vitejs/plugin-react@6.0.3(babel-plugin-react-compiler@1.0.0)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) optionalDependencies: babel-plugin-react-compiler: 1.0.0 - '@vitest/browser-playwright@4.1.9(playwright@1.61.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9)': + '@vitest/browser-playwright@4.1.9(playwright@1.61.1)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9)': dependencies: - '@vitest/browser': 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) - '@vitest/mocker': 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@vitest/browser': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) playwright: 1.61.1 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + vitest: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser-playwright@4.1.9(playwright@1.61.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9)': - dependencies: - '@vitest/browser': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) - '@vitest/mocker': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - playwright: 1.61.1 - tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - optional: true - - '@vitest/browser@4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9)': + '@vitest/browser@4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@vitest/utils': 4.1.9 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - ws: 8.21.0 - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - - '@vitest/browser@4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9)': - dependencies: - '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - '@vitest/utils': 4.1.9 - magic-string: 0.30.21 - pngjs: 7.0.0 - sirv: 3.0.2 - tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + vitest: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -7467,9 +7281,9 @@ snapshots: obug: 2.1.3 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + vitest: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) optionalDependencies: - '@vitest/browser': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + '@vitest/browser': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) '@vitest/expect@3.2.4': dependencies: @@ -7488,21 +7302,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': + '@vitest/mocker@4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) - - '@vitest/mocker@4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))': - dependencies: - '@vitest/spy': 4.1.9 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -7539,7 +7345,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + vitest: 4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@vitest/utils@3.2.4': dependencies: @@ -7571,7 +7377,7 @@ snapshots: '@zip.js/zip.js@2.8.26(patch_hash=7b556bbd426f152eb086f0126a53900e369a95cf64357c380b7c8d8e940c3d95)': {} - abbrev@2.0.0: {} + abbrev@5.0.0: {} accepts@2.0.0: dependencies: @@ -7783,7 +7589,7 @@ snapshots: axios@1.16.1(supports-color@5.5.0): dependencies: follow-redirects: 1.16.0 - form-data: 4.0.5 + form-data: 4.0.6 https-proxy-agent: 5.0.1(supports-color@5.5.0) proxy-from-env: 2.1.0 transitivePeerDependencies: @@ -7841,10 +7647,6 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.1: - dependencies: - balanced-match: 1.0.2 - brace-expansion@5.0.7: dependencies: balanced-match: 4.0.4 @@ -8027,8 +7829,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@10.0.1: {} - commander@12.1.0: {} commander@14.0.3: {} @@ -8333,14 +8133,12 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - eastasianwidth@0.2.0: {} - - editorconfig@1.0.4: + editorconfig@3.0.2: dependencies: - '@one-ini/wasm': 0.1.1 - commander: 10.0.1 - minimatch: 9.0.9 - semver: 7.8.4 + '@one-ini/wasm': 0.2.1 + commander: 14.0.3 + minimatch: 10.2.5 + semver: 7.8.5 ee-first@1.1.1: {} @@ -8830,12 +8628,7 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - form-data@4.0.5: + form-data@4.0.6: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -8936,15 +8729,6 @@ snapshots: dependencies: tslib: 2.8.1 - glob@10.5.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.9 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - glob@13.0.6: dependencies: minimatch: 10.2.5 @@ -9298,12 +9082,6 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jju@1.4.0: optional: true @@ -9317,13 +9095,13 @@ snapshots: '@hapi/topo': 6.0.2 '@standard-schema/spec': 1.1.0 - js-beautify@1.15.4: + js-beautify@2.0.3: dependencies: config-chain: 1.1.13 - editorconfig: 1.0.4 - glob: 10.5.0 + editorconfig: 3.0.2 + glob: 13.0.6 js-cookie: 3.0.8 - nopt: 7.2.1 + nopt: 10.0.1 js-cookie@3.0.8: {} @@ -9356,7 +9134,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.25.0 + undici: 7.28.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -9525,8 +9303,6 @@ snapshots: loupe@3.2.1: {} - lru-cache@10.4.3: {} - lru-cache@11.5.1: {} lru-cache@5.1.1: @@ -9624,10 +9400,6 @@ snapshots: dependencies: brace-expansion: 1.1.15 - minimatch@9.0.9: - dependencies: - brace-expansion: 2.1.1 - minimist@1.2.8: {} minipass@7.1.3: {} @@ -9663,7 +9435,7 @@ snapshots: nice-try@1.0.5: {} - node-abi@3.92.0: + node-abi@3.93.0: dependencies: semver: 7.8.5 @@ -9690,9 +9462,9 @@ snapshots: touch: 3.1.1 undefsafe: 2.0.5 - nopt@7.2.1: + nopt@10.0.1: dependencies: - abbrev: 2.0.0 + abbrev: 5.0.0 normalize-package-data@2.5.0: dependencies: @@ -9905,11 +9677,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.3 - path-scurry@2.0.2: dependencies: lru-cache: 11.5.1 @@ -9987,20 +9754,20 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.5.16) postcss: 8.5.16 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.1(postcss@8.5.16): dependencies: postcss: 8.5.16 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 postcss-modules-values@4.0.0(postcss@8.5.16): dependencies: icss-utils: 5.1.0(postcss@8.5.16) postcss: 8.5.16 - postcss-modules@6.0.1(postcss@8.5.16): + postcss-modules@9.0.0(postcss@8.5.16): dependencies: generic-names: 4.0.0 icss-utils: 5.1.0(postcss@8.5.16) @@ -10050,7 +9817,7 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.92.0 + node-abi: 3.93.0 pump: 3.0.4 rc: 1.2.8 simple-get: 4.0.1 @@ -10718,12 +10485,6 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.2.0 - string-width@7.2.0: dependencies: emoji-regex: 10.6.0 @@ -11161,7 +10922,7 @@ snapshots: undici-types@8.3.0: {} - undici@7.25.0: {} + undici@7.28.0: {} unicorn-magic@0.4.0: {} @@ -11170,7 +10931,7 @@ snapshots: unpipe@1.0.0: {} - unplugin-dts@1.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.0.1))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): + unplugin-dts@1.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.1.0))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): dependencies: '@rollup/pluginutils': 5.4.0(rollup@4.61.1) '@volar/typescript': 2.4.28 @@ -11182,11 +10943,11 @@ snapshots: typescript: 6.0.3 unplugin: 2.3.11 optionalDependencies: - '@microsoft/api-extractor': 7.56.2(@types/node@26.0.1) + '@microsoft/api-extractor': 7.56.2(@types/node@26.1.0) esbuild: 0.28.1 rolldown: 1.1.3 rollup: 4.61.1 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) transitivePeerDependencies: - supports-color @@ -11248,13 +11009,13 @@ snapshots: remove-trailing-separator: 1.1.0 replace-ext: 1.0.1 - vite-plugin-dts@5.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.0.1))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): + vite-plugin-dts@5.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.1.0))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): dependencies: - unplugin-dts: 1.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.0.1))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + unplugin-dts: 1.0.3(@microsoft/api-extractor@7.56.2(@types/node@26.1.0))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.61.1)(supports-color@5.5.0)(typescript@6.0.3)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) optionalDependencies: - '@microsoft/api-extractor': 7.56.2(@types/node@26.0.1) + '@microsoft/api-extractor': 7.56.2(@types/node@26.1.0) rollup: 4.61.1 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) transitivePeerDependencies: - '@rspack/core' - '@vue/language-core' @@ -11264,7 +11025,7 @@ snapshots: - typescript - webpack - vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0): + vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -11272,30 +11033,16 @@ snapshots: rolldown: 1.1.3 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.0.1 + '@types/node': 26.1.0 esbuild: 0.28.1 fsevents: 2.3.3 sass: 1.101.0 sass-embedded: 1.100.0 - vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0): - dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.16 - rolldown: 1.1.3 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 26.0.1 - esbuild: 0.28.1 - fsevents: 2.3.3 - sass: 1.101.0 - sass-embedded: 1.100.0 - - vitest@4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): + vitest@4.1.9(@types/node@26.1.0)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) + '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -11312,42 +11059,11 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) + vite: 8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 26.0.1 - '@vitest/browser-playwright': 4.1.9(playwright@1.61.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) - '@vitest/coverage-v8': 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9) - '@vitest/ui': 4.1.9(vitest@4.1.9) - jsdom: 29.1.1(canvas@3.2.3) - transitivePeerDependencies: - - msw - - vitest@4.1.9(@types/node@26.0.1)(@vitest/browser-playwright@4.1.9)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(canvas@3.2.3))(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)): - dependencies: - '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0)) - '@vitest/pretty-format': 4.1.9 - '@vitest/runner': 4.1.9 - '@vitest/snapshot': 4.1.9 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.3 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.17 - tinyrainbow: 3.1.0 - vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 26.0.1 - '@vitest/browser-playwright': 4.1.9(playwright@1.61.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) + '@types/node': 26.1.0 + '@vitest/browser-playwright': 4.1.9(playwright@1.61.1)(vite@8.1.2(@types/node@26.1.0)(esbuild@0.28.1)(sass-embedded@1.100.0)(sass@1.101.0))(vitest@4.1.9) '@vitest/coverage-v8': 4.1.9(@vitest/browser@4.1.9)(vitest@4.1.9) '@vitest/ui': 4.1.9(vitest@4.1.9) jsdom: 29.1.1(canvas@3.2.3) @@ -11474,7 +11190,7 @@ snapshots: word-wrap@1.2.5: {} - workerpool@10.0.2: {} + workerpool@10.0.3: {} wrap-ansi@7.0.0: dependencies: @@ -11482,12 +11198,6 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.2.0 - wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 diff --git a/frontend/text-editor/package.json b/frontend/text-editor/package.json index 8a9bcaa5ea..c315c9e6c6 100644 --- a/frontend/text-editor/package.json +++ b/frontend/text-editor/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@playwright/test": "1.61.1", - "@types/node": "^26.0.1", + "@types/node": "^26.1.0", "@vitest/browser": "^4.1.9", "@vitest/coverage-v8": "^4.1.9", "@vitest/ui": "^4.1.9", @@ -25,7 +25,7 @@ "jsdom": "^29.1.1", "playwright": "1.61.1", "prettier": "^3.9.4", - "vite": "^8.1.1", + "vite": "^8.1.2", "vitest": "^4.1.9" }, "packageManager": "pnpm@11.9.0+sha512.bd682d5d03fe525ef7c9fd6780c6884d1e756ac4c9c9fe00c538782824310dcf90e3ddc4f53835f06dfaebd5085e41855e0bcbb3b60de2ac5bbab89e5036f03b" diff --git a/mcp/package.json b/mcp/package.json index 6a7c2b5703..5efd15acc9 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -24,6 +24,6 @@ "packageManager": "pnpm@11.9.0+sha512.bd682d5d03fe525ef7c9fd6780c6884d1e756ac4c9c9fe00c538782824310dcf90e3ddc4f53835f06dfaebd5085e41855e0bcbb3b60de2ac5bbab89e5036f03b", "devDependencies": { "concurrently": "^10.0.3", - "prettier": "^3.9.1" + "prettier": "^3.9.4" } } diff --git a/mcp/packages/plugin/package.json b/mcp/packages/plugin/package.json index c5df6328f0..a14df52313 100644 --- a/mcp/packages/plugin/package.json +++ b/mcp/packages/plugin/package.json @@ -18,7 +18,7 @@ "devDependencies": { "cross-env": "^10.1.0", "typescript": "^6.0.3", - "vite": "^8.1.0", + "vite": "^8.1.1", "vite-live-preview": "^0.4.0" } } diff --git a/mcp/packages/server/package.json b/mcp/packages/server/package.json index 4de1078fb1..c27ebaff0c 100644 --- a/mcp/packages/server/package.json +++ b/mcp/packages/server/package.json @@ -28,14 +28,14 @@ "@modelcontextprotocol/sdk": "^1.29.0", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", - "express": "^5.1.0", + "express": "^5.2.1", "ioredis": "^5.11.1", "js-yaml": "^5.2.0", "nrepl-client": "^0.3.0", "penpot-mcp": "file:..", "pino": "^10.3.1", "pino-loki": "^3.0.0", - "pino-pretty": "^13.1.1", + "pino-pretty": "^13.1.3", "reflect-metadata": "^0.2.2", "sharp": "^0.35.2", "ws": "^8.21.0", @@ -46,11 +46,11 @@ "@types/express": "^5.0.6", "@types/js-yaml": "^4.0.9", "@types/node": "^26.0.1", - "@types/ws": "^8.5.10", + "@types/ws": "^8.18.1", "cross-env": "^10.1.0", "esbuild": "^0.28.1", "ts-node": "^10.9.2", - "tsx": "^4.22.3", + "tsx": "^4.22.4", "typescript": "^6.0.3" }, "ts-node": { diff --git a/mcp/pnpm-lock.yaml b/mcp/pnpm-lock.yaml index 259e153b28..f81ed1183d 100644 --- a/mcp/pnpm-lock.yaml +++ b/mcp/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^10.0.3 version: 10.0.3 prettier: - specifier: ^3.9.1 - version: 3.9.1 + specifier: ^3.9.4 + version: 3.9.4 packages/common: devDependencies: @@ -37,11 +37,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.1.0 - version: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + specifier: ^8.1.1 + version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) vite-live-preview: specifier: ^0.4.0 - version: 0.4.0(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) + version: 0.4.0(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)) packages/server: dependencies: @@ -55,7 +55,7 @@ importers: specifier: ^0.15.1 version: 0.15.1 express: - specifier: ^5.1.0 + specifier: ^5.2.1 version: 5.2.1 ioredis: specifier: ^5.11.1 @@ -76,7 +76,7 @@ importers: specifier: ^3.0.0 version: 3.0.0 pino-pretty: - specifier: ^13.1.1 + specifier: ^13.1.3 version: 13.1.3 reflect-metadata: specifier: ^0.2.2 @@ -104,7 +104,7 @@ importers: specifier: ^26.0.1 version: 26.0.1 '@types/ws': - specifier: ^8.5.10 + specifier: ^8.18.1 version: 8.18.1 cross-env: specifier: ^10.1.0 @@ -116,7 +116,7 @@ importers: specifier: ^10.9.2 version: 10.9.2(@types/node@26.0.1)(typescript@6.0.3) tsx: - specifier: ^4.22.3 + specifier: ^4.22.4 version: 4.22.4 typescript: specifier: ^6.0.3 @@ -835,8 +835,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} esbuild@0.28.1: @@ -942,8 +942,8 @@ packages: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} help-me@5.0.0: @@ -1144,8 +1144,8 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-to-regexp@8.3.0: - resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} penpot-mcp@file:packages: resolution: {directory: packages, type: directory} @@ -1184,8 +1184,8 @@ packages: resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} engines: {node: ^10 || ^12 || >=14} - prettier@3.9.1: - resolution: {integrity: sha512-ppiDo2CSwexck1eyZUwJHg/N3nf1+6IRCv7W/VJ5vaLnVCmB7+3CdRfMwoCHBBX6xTrREDTksZ4OZl5SSf4zXA==} + prettier@3.9.4: + resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} engines: {node: '>=14'} hasBin: true @@ -1202,8 +1202,8 @@ packages: pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} engines: {node: '>=0.6'} quick-format-unescaped@4.0.4: @@ -1293,8 +1293,8 @@ packages: resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} engines: {node: '>= 0.4'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -1305,8 +1305,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} sonic-boom@4.2.0: @@ -1417,8 +1417,8 @@ packages: peerDependencies: vite: '>=5.4.0' - vite@8.1.0: - resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} + vite@8.1.1: + resolution: {integrity: sha512-X/05/cT+VITy2AeDc1der6smvGWWREtL4hPbPTaVbjSBuuWkmNOjR6HP3NzqcQA2nF6VHGUPaFRJyft/2AE9Kg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -1927,7 +1927,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.14.1 + qs: 6.15.3 raw-body: 3.0.2 type-is: 2.0.1 transitivePeerDependencies: @@ -2034,7 +2034,7 @@ snapshots: es-errors@1.3.0: {} - es-object-atoms@1.1.1: + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 @@ -2108,7 +2108,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.15.3 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 @@ -2160,24 +2160,24 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 gopd@1.2.0: {} has-symbols@1.1.0: {} - hasown@2.0.2: + hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -2327,7 +2327,7 @@ snapshots: path-key@3.1.1: {} - path-to-regexp@8.3.0: {} + path-to-regexp@8.4.2: {} penpot-mcp@file:packages: {} @@ -2384,7 +2384,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prettier@3.9.1: {} + prettier@3.9.4: {} process-warning@5.0.0: {} @@ -2403,9 +2403,10 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - qs@6.14.1: + qs@6.15.3: dependencies: - side-channel: 1.1.0 + es-define-property: 1.0.1 + side-channel: 1.1.1 quick-format-unescaped@4.0.4: {} @@ -2459,7 +2460,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.3.0 + path-to-regexp: 8.4.2 transitivePeerDependencies: - supports-color @@ -2542,7 +2543,7 @@ snapshots: shell-quote@1.8.4: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -2562,11 +2563,11 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -2657,20 +2658,20 @@ snapshots: vary@1.1.2: {} - vite-live-preview@0.4.0(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)): + vite-live-preview@0.4.0(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4)): dependencies: '@seahax/deep-copy': 0.1.0 '@seahax/semaphore': 0.5.1 '@types/ws': 8.18.1 escape-goat: 4.0.0 strip-ansi: 7.2.0 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4) ws: 8.21.0 transitivePeerDependencies: - bufferutil - utf-8-validate - vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4): + vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(tsx@4.22.4): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 diff --git a/mcp/pnpm-workspace.yaml b/mcp/pnpm-workspace.yaml index 7872ab47f7..60c228aba4 100644 --- a/mcp/pnpm-workspace.yaml +++ b/mcp/pnpm-workspace.yaml @@ -4,6 +4,10 @@ allowBuilds: linkWorkspacePackages: true +minimumReleaseAgeExclude: + - qs@6.14.2 || 6.15.2 + - path-to-regexp@8.4.0 + packages: - "./packages/common" - "./packages/server" diff --git a/plugins/apps/plugin-api-test-suite/package.json b/plugins/apps/plugin-api-test-suite/package.json index 43bf67412c..305612633c 100644 --- a/plugins/apps/plugin-api-test-suite/package.json +++ b/plugins/apps/plugin-api-test-suite/package.json @@ -17,6 +17,6 @@ "test:ci:mocked": "pnpm run build:headless && MOCK_BACKEND=1 tsx ci/run-ci.ts" }, "devDependencies": { - "playwright": "^1.61.0" + "playwright": "^1.61.1" } } diff --git a/plugins/libs/plugins-runtime/package.json b/plugins/libs/plugins-runtime/package.json index 6ee2d85eb5..cac1e949d5 100644 --- a/plugins/libs/plugins-runtime/package.json +++ b/plugins/libs/plugins-runtime/package.json @@ -2,9 +2,9 @@ "name": "@penpot/plugins-runtime", "version": "1.4.2", "dependencies": { - "@penpot/plugin-types": "^1.4.2", + "@penpot/plugin-types": "workspace:^", "ses": "^2.1.0", - "zod": "^3.22.4" + "zod": "^3.25.76" }, "module": "./dist/index.js", "typings": "./dist/index.d.ts", diff --git a/plugins/package.json b/plugins/package.json index e7e5f374a3..bfb9f1fcdc 100644 --- a/plugins/package.json +++ b/plugins/package.json @@ -45,9 +45,9 @@ "@types/feather-icons": "^4.29.4", "@types/node": "26.0.1", "@types/yargs": "^17.0.35", - "@typescript-eslint/eslint-plugin": "8.62.0", - "@typescript-eslint/parser": "8.62.0", - "@typescript-eslint/utils": "^8.62.0", + "@typescript-eslint/eslint-plugin": "8.62.1", + "@typescript-eslint/parser": "8.62.1", + "@typescript-eslint/utils": "^8.62.1", "@vitest/coverage-v8": "4.1.9", "@vitest/ui": "4.1.9", "concurrently": "^10.0.3", @@ -60,18 +60,18 @@ "eslint-plugin-react": "7.37.5", "eslint-plugin-react-hooks": "7.1.1", "eslint-plugin-unused-imports": "^4.4.1", - "fs-extra": "^11.3.5", + "fs-extra": "^11.3.6", "globals": "^17.7.0", "happy-dom": "^20.10.6", "jiti": "2.7.0", "jsdom": "~29.1.1", "jsonc-eslint-parser": "^3.1.0", - "prettier": "^3.9.1", + "prettier": "^3.9.4", "tsx": "^4.22.4", "typedoc": "^0.28.19", "typescript": "6.0.3", - "typescript-eslint": "^8.62.0", - "vite": "8.1.0", + "typescript-eslint": "^8.62.1", + "vite": "8.1.1", "vite-plugin-checker": "^0.14.4", "vite-plugin-dts": "5.0.3", "vite-plugin-static-copy": "^4.1.1", diff --git a/plugins/pnpm-lock.yaml b/plugins/pnpm-lock.yaml index dca9ff9d0a..96379796c5 100644 --- a/plugins/pnpm-lock.yaml +++ b/plugins/pnpm-lock.yaml @@ -4,6 +4,14 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@babel/core@<=7.29.0': ^7.29.1 + ajv@>=7.0.0-alpha.0 <8.18.0: ^8.18.0 + lodash@<=4.17.23: ^4.17.24 + lodash@>=4.0.0 <=4.17.23: ^4.17.24 + minimatch@>=10.0.0 <10.2.1: ^10.2.1 + minimatch@>=10.0.0 <10.2.3: ^10.2.3 + importers: .: @@ -59,10 +67,10 @@ importers: version: 22.0.4(chokidar@5.0.0) '@angular-eslint/eslint-plugin': specifier: 22.0.0 - version: 22.0.0(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + version: 22.0.0(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) '@angular-eslint/eslint-plugin-template': specifier: 22.0.0 - version: 22.0.0(@angular-eslint/template-parser@22.0.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/types@8.62.0)(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + version: 22.0.0(@angular-eslint/template-parser@22.0.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/types@8.62.1)(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) '@angular-eslint/template-parser': specifier: 22.0.0 version: 22.0.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) @@ -94,14 +102,14 @@ importers: specifier: ^17.0.35 version: 17.0.35 '@typescript-eslint/eslint-plugin': - specifier: 8.62.0 - version: 8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + specifier: 8.62.1 + version: 8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) '@typescript-eslint/parser': - specifier: 8.62.0 - version: 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + specifier: 8.62.1 + version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) '@typescript-eslint/utils': - specifier: ^8.62.0 - version: 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.62.1 + version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) '@vitest/coverage-v8': specifier: 4.1.9 version: 4.1.9(vitest@4.1.9) @@ -125,7 +133,7 @@ importers: version: 10.1.8(eslint@10.6.0(jiti@2.7.0)) eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)) + version: 2.32.0(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)) eslint-plugin-jsx-a11y: specifier: 6.10.2 version: 6.10.2(eslint@10.6.0(jiti@2.7.0)) @@ -137,10 +145,10 @@ importers: version: 7.1.1(eslint@10.6.0(jiti@2.7.0)) eslint-plugin-unused-imports: specifier: ^4.4.1 - version: 4.4.1(@typescript-eslint/eslint-plugin@8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)) + version: 4.4.1(@typescript-eslint/eslint-plugin@8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)) fs-extra: - specifier: ^11.3.5 - version: 11.3.5 + specifier: ^11.3.6 + version: 11.3.6 globals: specifier: ^17.7.0 version: 17.7.0 @@ -157,8 +165,8 @@ importers: specifier: ^3.1.0 version: 3.1.0 prettier: - specifier: ^3.9.1 - version: 3.9.1 + specifier: ^3.9.4 + version: 3.9.4 tsx: specifier: ^4.22.4 version: 4.22.4 @@ -169,23 +177,23 @@ importers: specifier: 6.0.3 version: 6.0.3 typescript-eslint: - specifier: ^8.62.0 - version: 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.62.1 + version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) vite: - specifier: 8.1.0 - version: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + specifier: 8.1.1 + version: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) vite-plugin-checker: specifier: ^0.14.4 - version: 0.14.4(eslint@10.6.0(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + version: 0.14.4(eslint@10.6.0(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) vite-plugin-dts: specifier: 5.0.3 - version: 5.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)) + version: 5.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)) vite-plugin-static-copy: specifier: ^4.1.1 - version: 4.1.1(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.1(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) vitest: specifier: 4.1.9 - version: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) yargs: specifier: ^18.0.0 version: 18.0.0 @@ -207,7 +215,7 @@ importers: apps/plugin-api-test-suite: devDependencies: playwright: - specifier: ^1.61.0 + specifier: ^1.61.1 version: 1.61.1 apps/poc-state-plugin: {} @@ -223,13 +231,13 @@ importers: libs/plugins-runtime: dependencies: '@penpot/plugin-types': - specifier: ^1.4.2 + specifier: workspace:^ version: link:../plugin-types ses: specifier: ^2.1.0 version: 2.1.0 zod: - specifier: ^3.22.4 + specifier: ^3.25.76 version: 3.25.76 libs/plugins-styles: {} @@ -498,10 +506,6 @@ packages: resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - '@babel/core@7.29.7': resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} @@ -530,7 +534,7 @@ packages: resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.29.1 '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} @@ -634,8 +638,8 @@ packages: '@endo/immutable-arraybuffer@1.1.2': resolution: {integrity: sha512-u+NaYB2aqEugQ3u7w3c5QNkPogf8q/xGgsPaqdY6pUiGWtYiTiFspKFcha6+oeZhWXWQ23rf0KrUq0kfuzqYyQ==} - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -646,8 +650,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -658,8 +662,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -670,8 +674,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -682,8 +686,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -694,8 +698,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -706,8 +710,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -718,8 +722,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -730,8 +734,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -742,8 +746,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -754,8 +758,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -766,8 +770,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -778,8 +782,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -790,8 +794,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -802,8 +806,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -814,8 +818,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -826,8 +830,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -838,8 +842,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -850,8 +854,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -862,8 +866,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -874,8 +878,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -886,8 +890,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -898,8 +902,8 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -910,8 +914,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -922,8 +926,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -934,8 +938,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1173,14 +1177,6 @@ packages: '@types/node': optional: true - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.1': - resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} - engines: {node: 20 || >=22} - '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -2182,63 +2178,63 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.62.0': - resolution: {integrity: sha512-o+mpz7EYiMzXoySXiKmzlabIvTVqUuK5yLrAedRPRDA0IpPFMUV1IXt6OqljIxX/kumN6EjUYp41Hqelh6p/Dw==} + '@typescript-eslint/eslint-plugin@8.62.1': + resolution: {integrity: sha512-4EQM77WgVNxj7OkL/5b/D/xZsw00G577+UriYTC7JF5opcF3T2AuoeY7ueLaZgSVjSgCS6yOAJB5bRGLPSJUzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.62.0 + '@typescript-eslint/parser': ^8.62.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.62.0': - resolution: {integrity: sha512-dzHeT2gySzZtLDsuqxU9AkYgIsQoHAHtRBpOqM+Ofzx1Bwrd2RcCjQJ+6iQbsHOIR6NS33bF2W1k3blN1zLDrA==} + '@typescript-eslint/parser@8.62.1': + resolution: {integrity: sha512-sPhE4iHuJDSvoAiec+Ro8JyXw8f0ql13HFR82P99nCm9GwTEKG0KYLvDe6REk8BCXuit6vJAv/Yxg5ABaNS2rA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.62.0': - resolution: {integrity: sha512-wexnCqiTg7BOGtbLDftYpRWlmLq4xfoMd7BKFR6Y75sZS3QmRKLdN3yWLhmIYgqMmP/OXWpj3H8odkb5nGURCQ==} + '@typescript-eslint/project-service@8.62.1': + resolution: {integrity: sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.62.0': - resolution: {integrity: sha512-1lX38kNxXIRb8mEc3lbq5mdHq1Pf2+U0nFU65KfT18mtPxxl0fvjuEE92mHuXPuCtElJhOrddOpyMlM3Z0umEA==} + '@typescript-eslint/scope-manager@8.62.1': + resolution: {integrity: sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.62.0': - resolution: {integrity: sha512-y2GAdB6ykaXUvuspbYnizQc4oDDz0Tz/Yc7iWrXf9mx8vm/L/0vLHCe0tS2boG96Zy+DivnVDQ9ZUEWoHqqx1g==} + '@typescript-eslint/tsconfig-utils@8.62.1': + resolution: {integrity: sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.62.0': - resolution: {integrity: sha512-+g5O3j0w2ldzC86Pv6fvbO/xhAonbJFIdf/MKQ1d30gndlsVzUOE83ldfSE15Qrl9fhFjK6AovHs5Wpp6vx86w==} + '@typescript-eslint/type-utils@8.62.1': + resolution: {integrity: sha512-aXM5xlqXiTxPibXB93cLAURfT3rlizf7uMXISCXy66Isr/9hISJx3yDsKl0L7lKa51b8JpFuNKby0/O0pEm9jg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.62.0': - resolution: {integrity: sha512-KvAclkktORPvM54TgLgA4z9HIV1M8zOgw9ZVNXl9f/8dLYfXYX1wkMXP7qmabpijQRV5bHJLOmoyGQbLMaUYeg==} + '@typescript-eslint/types@8.62.1': + resolution: {integrity: sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.62.0': - resolution: {integrity: sha512-+hVbNxtW64pIcZWDPGbyaKF7vp2IBTVY5ma1blwwksrjdsbdqqEKvJWMGbBofei4F6Dovx1M0RJgoFeNu2279A==} + '@typescript-eslint/typescript-estree@8.62.1': + resolution: {integrity: sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.62.0': - resolution: {integrity: sha512-82r66fi9zYwZ+mTq3vKgwjbZ1PVk/DJzrXFLpG6RnBbdvH8TEGVHIs9H4d2drhkOzf0syZuD/OZvvlu6GDbP4g==} + '@typescript-eslint/utils@8.62.1': + resolution: {integrity: sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.62.0': - resolution: {integrity: sha512-CY3uyFSRbcQv3nnSv8S0+lDftMVz6P963PoRlxrV7ew/Md564g9ut60PYzdLM5qW4jFn93GBF+Soi90ISAN+GQ==} + '@typescript-eslint/visitor-keys@8.62.1': + resolution: {integrity: sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-basic-ssl@2.3.0': @@ -2397,7 +2393,7 @@ packages: ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: - ajv: ^8.5.0 + ajv: ^8.18.0 peerDependenciesMeta: ajv: optional: true @@ -2405,7 +2401,7 @@ packages: ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: - ajv: ^8.0.0 + ajv: ^8.18.0 peerDependenciesMeta: ajv: optional: true @@ -2413,7 +2409,7 @@ packages: ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: - ajv: ^8.0.0 + ajv: ^8.18.0 peerDependenciesMeta: ajv: optional: true @@ -2421,14 +2417,11 @@ packages: ajv-keywords@5.1.0: resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: - ajv: ^8.8.2 + ajv: ^8.18.0 ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} @@ -2921,8 +2914,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} engines: {node: '>=18'} hasBin: true @@ -3122,6 +3115,9 @@ packages: fast-uri@3.1.2: resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fast-uri@3.1.3: + resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} + fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} @@ -3188,8 +3184,8 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} - fs-extra@11.3.5: - resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} + fs-extra@11.3.6: + resolution: {integrity: sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==} engines: {node: '>=14.14'} fs-minipass@3.0.3: @@ -3381,8 +3377,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@5.1.8: - resolution: {integrity: sha512-TM5YqrGeTsVIPPpILzeqZ8D2Zc2TvNgSDi88zPF2a4cyqQdWV/wVWBDRDbNzzrLeRWScrFcOX9lW2iX6GOtUDw==} + immutable@5.1.9: + resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} import-lazy@4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} @@ -3770,8 +3766,8 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} log-symbols@7.0.1: resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} @@ -3867,10 +3863,6 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -4212,8 +4204,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.9.1: - resolution: {integrity: sha512-ppiDo2CSwexck1eyZUwJHg/N3nf1+6IRCv7W/VJ5vaLnVCmB7+3CdRfMwoCHBBX6xTrREDTksZ4OZl5SSf4zXA==} + prettier@3.9.4: + resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} engines: {node: '>=14'} hasBin: true @@ -4911,8 +4903,8 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x - typescript-eslint@8.62.0: - resolution: {integrity: sha512-8QxXi+ZACKX0kaqO4gY8kn0RSD9gFfaHDWwjqtEN48aWCBkX4MJaufWN+c3BzlrXLOxfywDL8CaoqUwcRq4j4Q==} + typescript-eslint@8.62.1: + resolution: {integrity: sha512-vymnnM5g0AKQDSAyfP12nMIBvgwgA42syg74kkuZ4x1VuTzwQKwc5h9rGxeShCjny5o+zWAb6OEoz7XLgrIkIw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4945,8 +4937,8 @@ packages: resolution: {integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==} engines: {node: '>=18.17'} - undici@7.26.0: - resolution: {integrity: sha512-3O9Tf67pGhgOv9jM35AbhkXAKi13f3oy3aE4CSgr+TckGeY+/iu97ZXN+J7DpHPzLbVApFd1IFhcnBjREYXYcg==} + undici@7.28.0: + resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} unicorn-magic@0.3.0: @@ -5106,8 +5098,8 @@ packages: yaml: optional: true - vite@8.1.0: - resolution: {integrity: sha512-BuJcQK/56NQTWDGn4ABea3q4SSBdNPWwNZKTkkUpcMPnLoquSYH8llRtSUIgoL1KSCpHt5eghLShn50mH36y7Q==} + vite@8.1.1: + resolution: {integrity: sha512-X/05/cT+VITy2AeDc1der6smvGWWREtL4hPbPTaVbjSBuuWkmNOjR6HP3NzqcQA2nF6VHGUPaFRJyft/2AE9Kg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5488,23 +5480,23 @@ snapshots: '@angular-eslint/bundled-angular-compiler@22.0.0': {} - '@angular-eslint/eslint-plugin-template@22.0.0(@angular-eslint/template-parser@22.0.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/types@8.62.0)(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@angular-eslint/eslint-plugin-template@22.0.0(@angular-eslint/template-parser@22.0.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/types@8.62.1)(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.0.0 '@angular-eslint/template-parser': 22.0.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@angular-eslint/utils': 22.0.0(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/types': 8.62.0 - '@typescript-eslint/utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@angular-eslint/utils': 22.0.0(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) aria-query: 5.3.2 axobject-query: 4.1.0 eslint: 10.6.0(jiti@2.7.0) typescript: 6.0.3 - '@angular-eslint/eslint-plugin@22.0.0(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@angular-eslint/eslint-plugin@22.0.0(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.0.0 - '@angular-eslint/utils': 22.0.0(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@angular-eslint/utils': 22.0.0(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) eslint: 10.6.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 @@ -5516,10 +5508,10 @@ snapshots: eslint-scope: 9.1.2 typescript: 6.0.3 - '@angular-eslint/utils@22.0.0(@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@angular-eslint/utils@22.0.0(@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.0.0 - '@typescript-eslint/utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) eslint: 10.6.0(jiti@2.7.0) typescript: 6.0.3 @@ -5535,7 +5527,7 @@ snapshots: '@angular-devkit/architect': 0.2200.4(chokidar@5.0.0) '@angular/compiler': 22.0.4 '@angular/compiler-cli': 22.0.4(@angular/compiler@22.0.4)(typescript@6.0.3) - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 6.0.12(@types/node@26.0.1) @@ -5567,7 +5559,7 @@ snapshots: less: 4.6.4 lmdb: 3.5.4 postcss: 8.5.16 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) transitivePeerDependencies: - '@types/node' - chokidar @@ -5697,26 +5689,6 @@ snapshots: '@babel/compat-data@7.29.7': {} - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0) - '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.29.7': dependencies: '@babel/code-frame': 7.29.7 @@ -5766,15 +5738,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -5881,157 +5844,157 @@ snapshots: '@endo/immutable-arraybuffer@1.1.2': {} - '@esbuild/aix-ppc64@0.27.7': + '@esbuild/aix-ppc64@0.27.2': optional: true '@esbuild/aix-ppc64@0.28.1': optional: true - '@esbuild/android-arm64@0.27.7': + '@esbuild/android-arm64@0.27.2': optional: true '@esbuild/android-arm64@0.28.1': optional: true - '@esbuild/android-arm@0.27.7': + '@esbuild/android-arm@0.27.2': optional: true '@esbuild/android-arm@0.28.1': optional: true - '@esbuild/android-x64@0.27.7': + '@esbuild/android-x64@0.27.2': optional: true '@esbuild/android-x64@0.28.1': optional: true - '@esbuild/darwin-arm64@0.27.7': + '@esbuild/darwin-arm64@0.27.2': optional: true '@esbuild/darwin-arm64@0.28.1': optional: true - '@esbuild/darwin-x64@0.27.7': + '@esbuild/darwin-x64@0.27.2': optional: true '@esbuild/darwin-x64@0.28.1': optional: true - '@esbuild/freebsd-arm64@0.27.7': + '@esbuild/freebsd-arm64@0.27.2': optional: true '@esbuild/freebsd-arm64@0.28.1': optional: true - '@esbuild/freebsd-x64@0.27.7': + '@esbuild/freebsd-x64@0.27.2': optional: true '@esbuild/freebsd-x64@0.28.1': optional: true - '@esbuild/linux-arm64@0.27.7': + '@esbuild/linux-arm64@0.27.2': optional: true '@esbuild/linux-arm64@0.28.1': optional: true - '@esbuild/linux-arm@0.27.7': + '@esbuild/linux-arm@0.27.2': optional: true '@esbuild/linux-arm@0.28.1': optional: true - '@esbuild/linux-ia32@0.27.7': + '@esbuild/linux-ia32@0.27.2': optional: true '@esbuild/linux-ia32@0.28.1': optional: true - '@esbuild/linux-loong64@0.27.7': + '@esbuild/linux-loong64@0.27.2': optional: true '@esbuild/linux-loong64@0.28.1': optional: true - '@esbuild/linux-mips64el@0.27.7': + '@esbuild/linux-mips64el@0.27.2': optional: true '@esbuild/linux-mips64el@0.28.1': optional: true - '@esbuild/linux-ppc64@0.27.7': + '@esbuild/linux-ppc64@0.27.2': optional: true '@esbuild/linux-ppc64@0.28.1': optional: true - '@esbuild/linux-riscv64@0.27.7': + '@esbuild/linux-riscv64@0.27.2': optional: true '@esbuild/linux-riscv64@0.28.1': optional: true - '@esbuild/linux-s390x@0.27.7': + '@esbuild/linux-s390x@0.27.2': optional: true '@esbuild/linux-s390x@0.28.1': optional: true - '@esbuild/linux-x64@0.27.7': + '@esbuild/linux-x64@0.27.2': optional: true '@esbuild/linux-x64@0.28.1': optional: true - '@esbuild/netbsd-arm64@0.27.7': + '@esbuild/netbsd-arm64@0.27.2': optional: true '@esbuild/netbsd-arm64@0.28.1': optional: true - '@esbuild/netbsd-x64@0.27.7': + '@esbuild/netbsd-x64@0.27.2': optional: true '@esbuild/netbsd-x64@0.28.1': optional: true - '@esbuild/openbsd-arm64@0.27.7': + '@esbuild/openbsd-arm64@0.27.2': optional: true '@esbuild/openbsd-arm64@0.28.1': optional: true - '@esbuild/openbsd-x64@0.27.7': + '@esbuild/openbsd-x64@0.27.2': optional: true '@esbuild/openbsd-x64@0.28.1': optional: true - '@esbuild/openharmony-arm64@0.27.7': + '@esbuild/openharmony-arm64@0.27.2': optional: true '@esbuild/openharmony-arm64@0.28.1': optional: true - '@esbuild/sunos-x64@0.27.7': + '@esbuild/sunos-x64@0.27.2': optional: true '@esbuild/sunos-x64@0.28.1': optional: true - '@esbuild/win32-arm64@0.27.7': + '@esbuild/win32-arm64@0.27.2': optional: true '@esbuild/win32-arm64@0.28.1': optional: true - '@esbuild/win32-ia32@0.27.7': + '@esbuild/win32-ia32@0.27.2': optional: true '@esbuild/win32-ia32@0.28.1': optional: true - '@esbuild/win32-x64@0.27.7': + '@esbuild/win32-x64@0.27.2': optional: true '@esbuild/win32-x64@0.28.1': @@ -6232,14 +6195,6 @@ snapshots: optionalDependencies: '@types/node': 26.0.1 - '@isaacs/balanced-match@4.0.1': - optional: true - - '@isaacs/brace-expansion@5.0.1': - dependencies: - '@isaacs/balanced-match': 4.0.1 - optional: true - '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.3 @@ -6320,8 +6275,8 @@ snapshots: '@rushstack/terminal': 0.21.0(@types/node@26.0.1) '@rushstack/ts-command-line': 5.1.7(@types/node@26.0.1) diff: 8.0.4 - lodash: 4.17.23 - minimatch: 10.0.3 + lodash: 4.18.1 + minimatch: 10.2.5 resolve: 1.22.12 semver: 7.5.4 source-map: 0.6.1 @@ -6510,7 +6465,7 @@ snapshots: '@npmcli/fs@5.0.0': dependencies: - semver: 7.8.5 + semver: 7.7.4 '@npmcli/git@7.0.2': dependencies: @@ -6520,7 +6475,7 @@ snapshots: lru-cache: 11.5.1 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.8.5 + semver: 7.7.4 which: 6.0.1 '@npmcli/installed-package-contents@4.0.0': @@ -6537,7 +6492,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.5 + semver: 7.7.4 spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@9.0.1': @@ -6895,10 +6850,10 @@ snapshots: '@rushstack/node-core-library@5.19.1(@types/node@26.0.1)': dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.5 + ajv: 8.20.0 + ajv-draft-04: 1.0.0(ajv@8.20.0) + ajv-formats: 3.0.1(ajv@8.20.0) + fs-extra: 11.3.6 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.12 @@ -7073,14 +7028,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.62.0 - '@typescript-eslint/type-utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.62.0 + '@typescript-eslint/parser': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.62.1 + '@typescript-eslint/type-utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.62.1 eslint: 10.6.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 @@ -7089,41 +7044,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.62.0 - '@typescript-eslint/types': 8.62.0 - '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.62.0 + '@typescript-eslint/scope-manager': 8.62.1 + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.62.1 debug: 4.4.3 eslint: 10.6.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.62.0(typescript@6.0.3)': + '@typescript-eslint/project-service@8.62.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.62.0(typescript@6.0.3) - '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/tsconfig-utils': 8.62.1(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 debug: 4.4.3 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.62.0': + '@typescript-eslint/scope-manager@8.62.1': dependencies: - '@typescript-eslint/types': 8.62.0 - '@typescript-eslint/visitor-keys': 8.62.0 + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/visitor-keys': 8.62.1 - '@typescript-eslint/tsconfig-utils@8.62.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.62.1(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.62.0 - '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3 eslint: 10.6.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@6.0.3) @@ -7131,14 +7086,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.62.0': {} + '@typescript-eslint/types@8.62.1': {} - '@typescript-eslint/typescript-estree@8.62.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.62.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.62.0(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.62.0(typescript@6.0.3) - '@typescript-eslint/types': 8.62.0 - '@typescript-eslint/visitor-keys': 8.62.0 + '@typescript-eslint/project-service': 8.62.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.62.1(typescript@6.0.3) + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/visitor-keys': 8.62.1 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.5 @@ -7148,20 +7103,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/utils@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.6.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.62.0 - '@typescript-eslint/types': 8.62.0 - '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.62.1 + '@typescript-eslint/types': 8.62.1 + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) eslint: 10.6.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.62.0': + '@typescript-eslint/visitor-keys@8.62.1': dependencies: - '@typescript-eslint/types': 8.62.0 + '@typescript-eslint/types': 8.62.1 eslint-visitor-keys: 5.0.1 '@vitejs/plugin-basic-ssl@2.3.0(vite@7.3.5(@types/node@26.0.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))': @@ -7180,7 +7135,7 @@ snapshots: obug: 2.1.3 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/expect@4.1.9': dependencies: @@ -7191,13 +7146,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) '@vitest/pretty-format@4.1.9': dependencies: @@ -7226,7 +7181,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vitest: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/utils@4.1.9': dependencies: @@ -7375,9 +7330,9 @@ snapshots: agent-base@9.0.0: {} - ajv-draft-04@1.0.0(ajv@8.13.0): + ajv-draft-04@1.0.0(ajv@8.20.0): optionalDependencies: - ajv: 8.13.0 + ajv: 8.20.0 optional: true ajv-formats@2.1.1(ajv@8.20.0): @@ -7385,11 +7340,6 @@ snapshots: ajv: 8.20.0 optional: true - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - optional: true - ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -7407,18 +7357,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - optional: true - ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 + fast-uri: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 optional: true @@ -8031,34 +7973,34 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild@0.27.7: + esbuild@0.27.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 esbuild@0.28.1: optionalDependencies: @@ -8107,17 +8049,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.13.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint@10.6.0(jiti@2.7.0)): + eslint-module-utils@2.13.0(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint@10.6.0(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) eslint: 10.6.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8128,7 +8070,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.6.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint@10.6.0(jiti@2.7.0)) + eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-node@0.3.10)(eslint@10.6.0(jiti@2.7.0)) hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 @@ -8140,7 +8082,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8198,11 +8140,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0)): dependencies: eslint: 10.6.0(jiti@2.7.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) eslint-scope@5.1.1: dependencies: @@ -8356,6 +8298,9 @@ snapshots: fast-uri@3.1.2: {} + fast-uri@3.1.3: + optional: true + fast-wrap-ansi@0.2.2: dependencies: fast-string-width: 3.0.2 @@ -8420,7 +8365,7 @@ snapshots: fresh@2.0.0: {} - fs-extra@11.3.5: + fs-extra@11.3.6: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.1 @@ -8632,7 +8577,7 @@ snapshots: image-size@0.5.5: optional: true - immutable@5.1.8: {} + immutable@5.1.9: {} import-lazy@4.0.0: optional: true @@ -8854,7 +8799,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 - undici: 7.26.0 + undici: 7.28.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -9031,7 +8976,7 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash@4.17.23: + lodash@4.18.1: optional: true log-symbols@7.0.1: @@ -9140,11 +9085,6 @@ snapshots: mimic-function@5.0.1: {} - minimatch@10.0.3: - dependencies: - '@isaacs/brace-expansion': 5.0.1 - optional: true - minimatch@10.2.5: dependencies: brace-expansion: 5.0.7 @@ -9263,7 +9203,7 @@ snapshots: graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.5 + semver: 7.7.4 tar: 7.5.19 tinyglobby: 0.2.17 undici: 6.27.0 @@ -9283,7 +9223,7 @@ snapshots: npm-install-checks@8.0.0: dependencies: - semver: 7.8.5 + semver: 7.7.4 npm-normalize-package-bin@5.0.0: {} @@ -9304,7 +9244,7 @@ snapshots: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.2 - semver: 7.8.5 + semver: 7.7.4 npm-registry-fetch@19.1.1: dependencies: @@ -9534,7 +9474,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.9.1: {} + prettier@3.9.4: {} proc-log@6.1.0: {} @@ -9846,7 +9786,7 @@ snapshots: dependencies: '@bufbuild/protobuf': 2.12.1 colorjs.io: 0.5.2 - immutable: 5.1.8 + immutable: 5.1.9 rxjs: 7.8.2 supports-color: 8.1.1 sync-child-process: 1.0.2 @@ -9875,7 +9815,7 @@ snapshots: sass@1.97.3: dependencies: chokidar: 4.0.3 - immutable: 5.1.8 + immutable: 5.1.9 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.6 @@ -9884,7 +9824,7 @@ snapshots: sass@1.99.0: dependencies: chokidar: 4.0.3 - immutable: 5.1.8 + immutable: 5.1.9 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.6 @@ -10364,12 +10304,12 @@ snapshots: typescript: 6.0.3 yaml: 2.9.0 - typescript-eslint@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.62.0(@typescript-eslint/parser@8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.62.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.62.0(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.62.1(@typescript-eslint/parser@8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.62.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3) eslint: 10.6.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: @@ -10395,7 +10335,7 @@ snapshots: undici@6.27.0: {} - undici@7.26.0: {} + undici@7.28.0: {} unicorn-magic@0.3.0: {} @@ -10403,7 +10343,7 @@ snapshots: unpipe@1.0.0: {} - unplugin-dts@1.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)): + unplugin-dts@1.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)): dependencies: '@rollup/pluginutils': 5.4.0(rollup@4.60.4) '@volar/typescript': 2.4.28 @@ -10420,7 +10360,7 @@ snapshots: esbuild: 0.28.1 rolldown: 1.1.3 rollup: 4.60.4 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) webpack: 5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16) transitivePeerDependencies: - supports-color @@ -10449,7 +10389,7 @@ snapshots: vary@1.1.2: {} - vite-plugin-checker@0.14.4(eslint@10.6.0(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)): + vite-plugin-checker@0.14.4(eslint@10.6.0(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)): dependencies: '@babel/code-frame': 7.29.7 chokidar: 5.0.0 @@ -10458,19 +10398,19 @@ snapshots: picomatch: 4.0.4 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) optionalDependencies: eslint: 10.6.0(jiti@2.7.0) optionator: 0.9.4 typescript: 6.0.3 - vite-plugin-dts@5.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)): + vite-plugin-dts@5.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)): dependencies: - unplugin-dts: 1.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)) + unplugin-dts: 1.0.3(@microsoft/api-extractor@7.56.0(@types/node@26.0.1))(@rspack/core@1.6.8(@swc/helpers@0.5.18))(esbuild@0.28.1)(rolldown@1.1.3)(rollup@4.60.4)(typescript@6.0.3)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.106.2(esbuild@0.28.1)(lightningcss@1.32.0)(postcss@8.5.16)) optionalDependencies: '@microsoft/api-extractor': 7.56.0(@types/node@26.0.1) rollup: 4.60.4 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) transitivePeerDependencies: - '@rspack/core' - '@vue/language-core' @@ -10480,17 +10420,17 @@ snapshots: - typescript - webpack - vite-plugin-static-copy@4.1.1(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)): + vite-plugin-static-copy@4.1.1(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)): dependencies: chokidar: 3.6.0 p-map: 7.0.4 picocolors: 1.1.1 tinyglobby: 0.2.17 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) vite@7.3.5(@types/node@26.0.1)(jiti@2.7.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0): dependencies: - esbuild: 0.27.7 + esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 postcss: 8.5.16 @@ -10508,7 +10448,7 @@ snapshots: tsx: 4.22.4 yaml: 2.9.0 - vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0): + vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -10527,10 +10467,10 @@ snapshots: tsx: 4.22.4 yaml: 2.9.0 - vitest@4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)): + vitest@4.1.9(@types/node@26.0.1)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) + '@vitest/mocker': 4.1.9(vite@8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -10547,7 +10487,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.0(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.1.1(@types/node@26.0.1)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.97.3)(sass@1.99.0)(terser@5.46.2)(tsx@4.22.4)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.0.1 diff --git a/plugins/pnpm-workspace.yaml b/plugins/pnpm-workspace.yaml index cb6f1a1554..ce14894b25 100644 --- a/plugins/pnpm-workspace.yaml +++ b/plugins/pnpm-workspace.yaml @@ -13,6 +13,22 @@ allowBuilds: linkWorkspacePackages: true +minimumReleaseAgeExclude: + - minimatch@10.2.1 || 10.2.3 + - ajv@8.18.0 + - lodash@4.17.24 + - esbuild@0.28.1 + - '@babel/core@7.29.1' + - undici@7.28.0 + +overrides: + '@babel/core@<=7.29.0': ^7.29.1 + ajv@>=7.0.0-alpha.0 <8.18.0: ^8.18.0 + lodash@<=4.17.23: ^4.17.24 + lodash@>=4.0.0 <=4.17.23: ^4.17.24 + minimatch@>=10.0.0 <10.2.1: ^10.2.1 + minimatch@>=10.0.0 <10.2.3: ^10.2.3 + peerDependencyRules: allowedVersions: "eslint-plugin-import>eslint": "10.6.0" From f25317ac47823034ee8cdc3d3f0dc9d7837253d4 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 1 Jul 2026 16:24:23 +0200 Subject: [PATCH 12/24] :bug: Fix text inner stroke fill seam by compositing fill inside SrcIn (#10509) * :bug: Fix text inner stroke fill seam by compositing fill inside SrcIn * :wrench: Update e2e Playwright screenshots --- ...551---Blurs-affecting-other-elements-1.png | Bin 9925 -> 9991 bytes .../Check-inner-stroke-artifacts-1.png | Bin 31923 -> 31993 bytes ...p-with-strokes-and-not-100-opacities-1.png | Bin 79634 -> 81603 bytes render-wasm/src/render/text.rs | 13 ++++++------- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/BUG-13551---Blurs-affecting-other-elements-1.png b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/BUG-13551---Blurs-affecting-other-elements-1.png index 770c417a65f59dd114a65ba1513a3dd05cec7d62..f1830e82ddab22579a7715aa1d4cac233e284ec0 100644 GIT binary patch delta 1864 zcmXX`X;f3!8av!Y& zt-n5N2_1&bzbmz71#@k#r06`oX=Db5awHVv)?5<=5F{4c8t3sugRq6;SB~lE>xrDB~-E zNko4iFZ;dFu)-DuS1|@CGMUvxU>Qst)(`i{Di)psy}gy?$z6HS0z>7(*?a ztb8o$KH0XcJ_>bPrr1#=&4=bWlfw1NAjb1_nT{-PBO!PS*YF4g2E~R7wzQ>4%h;7b zfeg?VLY7o&t(q&b(o5#5SJXU6E|)7Q1}=pjX_BLKBUn!n)?%&@<(SmUbEaYXD0wWr zq*yaT#)%!N?N<;gl>a>k6Dh}9r#SK0FPu9<$a?j~z7SSC z+ca{vK*b;%uZpsE2~tE$2a!#Dsi^`~Lk$(J^`2Qv2Moe#!nduDb?>dg}b zijUKilcA&Jm3H1YK0NZ$kfqDaZqv6zOyc;I#nN=9-$ye);~*nh{jtZ*W7n&~tt;)- zHgL(Xr&N0&&u6z9hlttYkpli=yZe=QYLCF;nKD`7Qu9&&c)TD-!4nrR_tJb44?yrJ z+18gyvSP_&SO6W(x}?aZr$jEy_QiV_KPe}X0aoC1do!mG>t_;BQh*OI*4@p_%{*Xfz^>~v0g#*R%7o4+g2P_ACZZ_CC zl;cny6!~q52tR)F`q-EjmC z*a-&!+EP(kJ_d75ysQ9nm#Q0<2+AI%ww*l4s$Dv`R1U%CLu<#K#*p2 zKER@G-f=mu9SUMiX${Y!j-#C$JYhUkMHZvd9m`3hdec9hK2lqDRnw(Vy4ZWFHy6OHkCFY z8FK>7A4LD0Oqq03!o0J5LwkO1|qK9^-X9}|zbX>(*qGyogH!2`H|E7Ad& z=!_@Z3bWQ!^xZsrKOxDy3^x9fe#G=3- zHLE3%N2GuBz3rWvcQ_Xy?~b^alvR}$yAM3?+~Ng5M(l7$CKP%G{Mgs)@u~^c@K3}F zx1XJ5y3^A+M#KDKkPFDB)d>h3(;e;m#oR)e+$#IQj8wj9HpuR&%%kVt(oPYaakwN*iCiK|5)GKUxTY{cniqzdV@PWD1PP-;KQ9pjR@Y+sgVKoUu<@ r(dEh8XZ+#4W3_ffP4nPedn6tO@TRNPndPbgB;nv!aR=(ZOuqDgOB=l& delta 1793 zcmX9;dr%X19{(*ts5}I;Cu$LrD}ceS|rqo1MAC5CUylccd7rv-F6}xJEJQ1nV(d85vbJ0@m<930i zjHUNYoz!Y&uyG=SWj|?9wZbM}VlHBR+Z;5B_4&&aaUjKY5C{g}x~%Dm`SO~jpT(U9 zot0wKU!V)w&KBn4;$mHeZfH3fbIEPIDYd3_EIb?a*}GxAa(Wa+z!N<}JS zl`&bam)9DUDn%;n>Xi3Z>a;5K*>xT-l#Mofq&c-oYHjgv270~IBr~Y^Zb#k9{P+dF zw4yMNZ_ufuBYLf^Z{b^%YR8zG#$JD;T^?|`ojv8#?iIQ`PiAyGO*!L+!oDoZ_L{WmJ2xiGK(&DTMv* z7T<`vg~gU3GNP<~KfU#%nd(vfe`$fZ zon;}=Z{|aG0T2vMq#ZdUo`oj719BEt^_}=}fJ5Wrljx#1vKip&_&^ZMWgB;ZO&tfB z+50%9+2L~lG)=kDONs-C$;g++ zah0>Pp%QQ+C63mScg4#3_Y5rg|4}HAX@<|+HEh4EuH!jBGGYMdvHSMr3M6cwc-vrR zh)0~ilitIUUCOEwT|(2n4*>OCit~9#Des?44sX##y#AbGCc8VeX(%p5HLNL`)s$sT z7z(q(L7Qmc)zZV(tJ~t%emwwkj%)^R;uWS7WjT^_<_x7Re7YGOjNA!!tDh0Xjgi-@SvCY=Et-xw<0q>3&B5P jSlms@Vf@9%vx5M9RF!_y{%Lrq0XT8|RN8~11y}zE^I3M# diff --git a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Check-inner-stroke-artifacts-1.png b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Check-inner-stroke-artifacts-1.png index e74e55f39f8c4dd995dcc5b202ac4873f105d141..88824190befcbadba8644863affbd7cee2f91187 100644 GIT binary patch literal 31993 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 Nnm8?fSFG**{{hp?YzzPZ diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-group-with-strokes-and-not-100-opacities-1.png b/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-group-with-strokes-and-not-100-opacities-1.png index 54dca6599c79efaa559160a04dad02eea8736699..646da5cdb529a4ab3f51c34b04ef3912000df58b 100644 GIT binary patch literal 81603 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 @-US5ntM8Gtw^S=jTzrevjAx*t>T&XM9=N>D*4} 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

3$QmQX<;^x) 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

4=;{y>P#a_QEtAs#}wluP!Dv^wMr3vjsQR z7xS58IZRM$bK(SvZ|JfOe~Q;4n{M* zE5Noxfo3AFtCn$W@Gdti?Fm&-&u<(@@~n#%}6 zIB@sdgDT0}qOcp-GdVv*f6oSV6{e(zKi(RtdI^>)FBj_dIs1Lp)@?<%3jyu+|015q zDf}Bg8xSmoFudC4B#GKnH$rn5_jPur_}TdCC;Q)=KsYoPk3huHylS9qa)BT5SkV zg7PpP*&QphVJfYDZ1}Pldyt1Fn7@+7Rm~pD!^_0~f$9W>z|H~5nD%i{oghDiYF)Qm z3RBNsr(-F7NFbSt@cb+m6uOjsG%@FM{f4O14Fi{B1=1aA#V`u%$Q zHyhZr8MHCWO30kHQ5~QJJ@*^yk7TMK*Mj%9#v+C}6fpo`vxJ-115mFL;cWY-cWrhO z&gq0_kVw>8UvRosW~y$`l>NY6dV$4XQcnKeS3xO^AwD$5Wwn*v_@W{S_WY}spCe1_ z78yb?8iLgq!O9efKF_g8`W@^tVy9)oi!ny~Kp=W6v?cd0z04=B-Fvk-+CG4h73Bi} zjvjani0c2U75!jevZg(IyjualWlz9lk~l4|S4L^|=Q^ky3%-6`+fmLHR)abetXam_ z&ke;6*r}>#SW|)bc!;Ldk~H?@Ct*uUwJNNsVXJYAa1D)IkUL4;HzOM;Z3X`}P`(VnxY^ z^%P6df4}7cL;-WT`Pig(X;9C|o&}ou*{A^GmG@hGr8i}wh?%%VXQ)q zTLR8&sMq8NiV{RXnzzUzrNJtBw#-?v2o-SH*1{Qb*emBqtANYg%mQ?bi>EtBH6zNg zKNU!h8M`mXI!wQJS>FhP0$bhaW+;W20{IY?DaHo1!Mv7i{x-HY*{M?>bQkX$F#>Up z3eQQO%INGDL;jfaW1o4`5M2eLP5GwobZd#OK3)-oHi6Ee&qT2||cFVU)QM zz_F)t@tmGy{(EN}g&uWP?47^J3HC;tQD6*l(qYM?$hr~oFj|J4WF(#>M#4YdAI zPt*8Hwh{f~Q>u;Q-OEAqVj1OW0l3E1ai6T4mXcj!$3^LYjfQb&UiR-v2YobWbj@~R z)U6&^J?1(4RubJ{@HwtDp!_)X3LGZ%NRZp0&%FGVzf@c8ZP~)17D+c^}nmKGKc(3@u^P zu1tL4&4#6-o$-a^RGf>R{wJ-QIxPc_3~Et{+8`)ihm|px;VDBQ{wqk?C_cdESaLz_ zd7P$HInVkVbQp)}18K?(O(%&TwX#4*bYG;3S$Ct6x9&yWik)bk-M2|`PTotd^1V{C zy1SHtH@aykz0aQd#sdKSLDKyg`ZM@rZkzP0C_MIkmjtqG9T~BhoxzokJg(>Zo%rJ} zGOQo4{p1$<6e;oase=FjD(R2??4N?GaXqRP&)&Oz3-D)bp5-FnpJ92HD;MsVJo*1O x{$C#dhs|LX$W_n&e%WcZJokd{&o2`%puoxA>%xWcz(1P1VP<)){OZG}{{^`b38?@8 literal 171427 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

qkL51{xt?u5QFf3bNZ>O_K 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

cGBR&i~n4En{#R`;=M@51||kLX3|x+*%K1b|cL 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 { + self.tile_atlas_flushed = true; + self.surfaces.apply_mut(surface_ids, |s| { s.canvas().concat(&matrix); }); @@ -1471,14 +1471,12 @@ impl RenderState { .enumerate() { if stroke_kinds[i] == StrokeKind::Inner { - let mut mask_builders = text_content.paragraph_builder_group_opaque(); let mut fill_builders = text_content.paragraph_builder_group_from_text(None); text::render_inner_stroke( Some(self), None, &shape, - &mut mask_builders, stroke_paragraphs, &mut fill_builders, Some(strokes_surface_id), @@ -1486,6 +1484,17 @@ impl RenderState { text_stroke_blur_outset, *layer_opacity, )?; + } else if stroke_kinds[i] == StrokeKind::Outer { + text::render_outer_stroke( + Some(self), + None, + &shape, + stroke_paragraphs, + Some(strokes_surface_id), + None, + text_stroke_blur_outset, + *layer_opacity, + )?; } else { text::render_with_bounds_outset( Some(self), @@ -1501,6 +1510,20 @@ impl RenderState { )?; } } + + if shape.has_visible_strokes() && text_content.has_non_ascii() { + let mut emoji_builders = text_content.paragraph_builder_group_opaque(); + let mut deco_builders = + text_content.paragraph_builder_group_from_text(None); + text::render_emoji_overlay( + self, + &shape, + &mut emoji_builders, + &mut deco_builders, + strokes_surface_id, + None, + ); + } } else { let mut drop_shadows = shape.drop_shadow_paints(); @@ -1607,15 +1630,12 @@ impl RenderState { .enumerate() { if stroke_kinds[i] == StrokeKind::Inner { - let mut mask_builders = - text_content.paragraph_builder_group_opaque(); let mut fill_builders = text_content.paragraph_builder_group_from_text(None); text::render_inner_stroke( Some(self), None, &shape, - &mut mask_builders, stroke_paragraphs, &mut fill_builders, Some(strokes_surface_id), @@ -1623,6 +1643,17 @@ impl RenderState { text_stroke_blur_outset, *layer_opacity, )?; + } else if stroke_kinds[i] == StrokeKind::Outer { + text::render_outer_stroke( + Some(self), + None, + &shape, + stroke_paragraphs, + Some(strokes_surface_id), + blur_filter.as_ref(), + text_stroke_blur_outset, + *layer_opacity, + )?; } else { text::render_with_bounds_outset( Some(self), @@ -1639,6 +1670,20 @@ impl RenderState { } } + if shape.has_visible_strokes() && text_content.has_non_ascii() { + let mut emoji_builders = text_content.paragraph_builder_group_opaque(); + let mut deco_builders = + text_content.paragraph_builder_group_from_text(None); + text::render_emoji_overlay( + self, + &shape, + &mut emoji_builders, + &mut deco_builders, + strokes_surface_id, + blur_filter.as_ref(), + ); + } + // 5. Stroke inner shadows shadows::render_text_shadows( self, @@ -2092,7 +2137,6 @@ impl RenderState { self.surfaces.atlas.set_doc_bounds(doc_bounds); self.cache_cleared_this_render = false; - self.tile_atlas_flushed = false; let preserve_target = self.preserve_target_during_render; self.preserve_target_during_render = false; @@ -3575,6 +3619,7 @@ impl RenderState { // a resumed-from-yield case rather than a genuinely // empty tile. self.current_tile_had_shapes = false; + self.tile_atlas_flushed = false; let viewer_masked_pass = self.viewer_masked_pass(); diff --git a/render-wasm/src/render/shadows.rs b/render-wasm/src/render/shadows.rs index 6965f16ed0..c3de172ad8 100644 --- a/render-wasm/src/render/shadows.rs +++ b/render-wasm/src/render/shadows.rs @@ -165,13 +165,11 @@ pub fn render_text_shadows( for (i, stroke_paragraphs) in stroke_paragraphs_group.iter_mut().enumerate() { if i < stroke_kinds.len() && stroke_kinds[i] == StrokeKind::Inner { - let mut mask_builders = text_content.paragraph_builder_group_opaque(); let mut fill_builders = text_content.paragraph_builder_group_from_text(Some(true)); text::render_inner_stroke( None, Some(canvas), shape, - &mut mask_builders, stroke_paragraphs, &mut fill_builders, surface_id, @@ -179,6 +177,17 @@ pub fn render_text_shadows( 0.0, None, )?; + } else if i < stroke_kinds.len() && stroke_kinds[i] == StrokeKind::Outer { + text::render_outer_stroke( + None, + Some(canvas), + shape, + stroke_paragraphs, + surface_id, + blur_filter.as_ref(), + 0.0, + None, + )?; } else { text::render( None, diff --git a/render-wasm/src/render/text.rs b/render-wasm/src/render/text.rs index d70993e6b9..d972e69813 100644 --- a/render-wasm/src/render/text.rs +++ b/render-wasm/src/render/text.rs @@ -95,8 +95,6 @@ fn get_text_stroke_paints( match stroke.kind { StrokeKind::Inner => { - // Just the stroke paint — mask+SrcIn+DstOver layering is handled - // by render_inner_stroke_on_canvas. let mut paint = skia::Paint::default(); paint.set_style(skia::PaintStyle::Stroke); paint.set_anti_alias(true); @@ -120,17 +118,14 @@ fn get_text_stroke_paints( StrokeKind::Outer => { let mut paint = skia::Paint::default(); paint.set_style(skia::PaintStyle::Stroke); - paint.set_blend_mode(skia::BlendMode::DstOver); paint.set_anti_alias(true); paint.set_stroke_width(stroke.width * 2.0); - fill_for_paint(&mut paint); - paints.push(paint); - - let mut paint = skia::Paint::default(); - paint.set_style(skia::PaintStyle::Fill); - paint.set_blend_mode(skia::BlendMode::Clear); - paint.set_color(skia::Color::TRANSPARENT); - paint.set_anti_alias(true); + if remove_stroke_alpha { + paint.set_color(skia::Color::BLACK); + paint.set_alpha(255); + } else { + fill_for_paint(&mut paint); + } paints.push(paint); } } @@ -408,10 +403,10 @@ fn paint_text_with_emoji_overlay( overlay_emoji: bool, ) { let text_content = shape.get_text_content(); - let layout_info = + let mut layout_info = calculate_text_layout_data(shape, text_content, paragraph_builder_groups, true); - for para in &layout_info.paragraphs { + for para in &mut layout_info.paragraphs { para.paragraph.paint(canvas, (para.x, para.y)); if overlay_emoji { @@ -431,11 +426,48 @@ fn paint_text_with_emoji_overlay( } } +fn paragraph_has_emoji(paragraph: &mut skia::textlayout::Paragraph) -> bool { + let line_bounds: Vec<(usize, usize)> = paragraph + .get_line_metrics() + .iter() + .map(|l| (l.start_index, l.end_index)) + .collect(); + line_bounds + .into_iter() + .any(|(start, end)| !line_emoji_ranges(paragraph, start, end).is_empty()) +} + +fn line_emoji_ranges( + paragraph: &mut skia::textlayout::Paragraph, + line_start: usize, + line_end: usize, +) -> Vec<(usize, usize)> { + let mut merged: Vec<(usize, usize)> = Vec::new(); + for idx in line_start..line_end { + let font = paragraph.get_font_at_utf16_offset(idx); + let normalized = font + .typeface() + .family_name() + .to_lowercase() + .replace(' ', "-"); + if !normalized.contains(DEFAULT_EMOJI_FONT) { + continue; + } + + match merged.last_mut() { + Some(last) if last.1 == idx => last.1 = idx + 1, + _ => merged.push((idx, idx + 1)), + } + } + + merged +} + /// Rasterizes color emoji runs as bitmap overlays. Skia's PDF backend can't /// embed COLR/CBDT color glyphs, so each emoji is drawn to a raster surface and /// blitted; `paragraph.paint()` already wrote placeholder glyphs (keeps text /// selectable). -fn paint_emoji_overlay(canvas: &Canvas, para: &ParagraphLayout) { +fn paint_emoji_overlay(canvas: &Canvas, para: &mut ParagraphLayout) { let line_metrics = para.paragraph.get_line_metrics(); // Rasterize at TARGET_DPI relative to the emoji's on-page size (72 user @@ -450,45 +482,18 @@ fn paint_emoji_overlay(canvas: &Canvas, para: &ParagraphLayout) { let sy = (ctm.skew_x().powi(2) + ctm.scale_y().powi(2)).sqrt(); let output_scale = sx.max(sy).max(1.0); - for line in &line_metrics { - let style_runs = line.get_style_metrics(line.start_index..line.end_index); + let line_bounds: Vec<(usize, usize)> = line_metrics + .iter() + .map(|l| (l.start_index, l.end_index)) + .collect(); + drop(line_metrics); - // Build a list of (start, end, is_emoji) for each style run. - let mut run_info: Vec<(usize, usize, bool)> = Vec::new(); - for (i, (start_idx, _style_metric)) in style_runs.iter().enumerate() { - let end_idx = style_runs.get(i + 1).map_or(line.end_index, |next| next.0); - if *start_idx >= end_idx { - continue; - } - - let font = para.paragraph.get_font_at(*start_idx); - let family_name = font.typeface().family_name(); - - let normalized = family_name.to_lowercase().replace(' ', "-"); - let is_emoji = normalized.contains(DEFAULT_EMOJI_FONT); - run_info.push((*start_idx, end_idx, is_emoji)); - } - - // Merge consecutive emoji runs: Skia splits ZWJ sequences (e.g. 👩🏿‍🚀) - // per codepoint, but `get_rects_for_range` needs the full cluster range. - let mut merged_emoji_ranges: Vec<(usize, usize)> = Vec::new(); - for &(start, end, is_emoji) in &run_info { - if is_emoji { - if let Some(last) = merged_emoji_ranges.last_mut() { - if last.1 == start { - // Extend the previous range - last.1 = end; - continue; - } - } - merged_emoji_ranges.push((start, end)); - } - } - - for (range_start, range_end) in &merged_emoji_ranges { + for (line_start, line_end) in line_bounds { + for (range_start, range_end) in line_emoji_ranges(&mut para.paragraph, line_start, line_end) + { // Get the bounding rects for this (possibly merged) emoji run let rects = para.paragraph.get_rects_for_range( - *range_start..*range_end, + range_start..range_end, skia::textlayout::RectHeightStyle::Tight, skia::textlayout::RectWidthStyle::Tight, ); @@ -542,6 +547,162 @@ fn paint_emoji_overlay(canvas: &Canvas, para: &ParagraphLayout) { } } +fn draw_decoration_stroke( + canvas: &Canvas, + kind: StrokeKind, + stroke_paint: &Paint, + bar: skia::Rect, +) { + if kind == StrokeKind::Center { + canvas.draw_rect(bar, stroke_paint); + return; + } + + let blend = if kind == StrokeKind::Inner { + skia::BlendMode::SrcIn + } else { + skia::BlendMode::SrcOut + }; + + canvas.save_layer(&SaveLayerRec::default()); + let mut mask_paint = Paint::default(); + mask_paint.set_color(skia::Color::BLACK); + mask_paint.set_anti_alias(true); + canvas.draw_rect(bar, &mask_paint); + + let mut blend_paint = Paint::default(); + blend_paint.set_blend_mode(blend); + canvas.save_layer(&SaveLayerRec::default().paint(&blend_paint)); + canvas.draw_rect(bar, stroke_paint); + canvas.restore(); + canvas.restore(); +} + +fn paint_emoji_opaque( + canvas: &Canvas, + emoji_para: &mut ParagraphLayout, + deco_para: &ParagraphLayout, + stroke_decos: &[(StrokeKind, Paint)], +) { + let line_bounds: Vec<(usize, usize)> = emoji_para + .paragraph + .get_line_metrics() + .iter() + .map(|l| (l.start_index, l.end_index)) + .collect(); + + let mut clip = skia::PathBuilder::new(); + let mut has_emoji = false; + for (line_start, line_end) in line_bounds { + for (range_start, range_end) in + line_emoji_ranges(&mut emoji_para.paragraph, line_start, line_end) + { + let rects = emoji_para.paragraph.get_rects_for_range( + range_start..range_end, + skia::textlayout::RectHeightStyle::Tight, + skia::textlayout::RectWidthStyle::Tight, + ); + + for text_box in &rects { + let r = &text_box.rect; + if r.width() <= 0.0 || r.height() <= 0.0 { + continue; + } + clip.add_rect( + skia::Rect::from_xywh( + emoji_para.x + r.left, + emoji_para.y + r.top, + r.width(), + r.height(), + ), + None, + None, + ); + has_emoji = true; + } + } + } + + if !has_emoji { + return; + } + + canvas.save(); + canvas.clip_path(&clip.detach(), skia::ClipOp::Intersect, true); + emoji_para + .paragraph + .paint(canvas, (emoji_para.x, emoji_para.y)); + + for deco in &deco_para.decorations { + draw_text_decorations( + canvas, + &deco.text_style, + Some(deco.y), + deco.thickness, + deco.left, + deco.width, + ); + let r = decoration_rect(deco.y, deco.thickness, deco.left, deco.width); + for (kind, paint) in stroke_decos { + draw_decoration_stroke(canvas, *kind, paint, r); + } + } + canvas.restore(); +} + +pub fn render_emoji_overlay( + render_state: &mut RenderState, + shape: &Shape, + emoji_builders: &mut [Vec], + deco_builders: &mut [Vec], + surface_id: SurfaceId, + blur: Option<&ImageFilter>, +) { + let text_content = shape.get_text_content(); + let mut emoji_layout = calculate_text_layout_data(shape, text_content, emoji_builders, true); + + if !emoji_layout + .paragraphs + .iter_mut() + .any(|para| paragraph_has_emoji(&mut para.paragraph)) + { + return; + } + + let selrect = shape.selrect(); + let mut stroke_decos: Vec<(StrokeKind, Paint)> = Vec::new(); + for stroke in shape.visible_strokes().rev() { + let (paints, opacity) = get_text_stroke_paints(stroke, &selrect, false); + for mut paint in paints { + if let Some(opacity) = opacity { + paint.set_alpha_f(opacity); + } + stroke_decos.push((stroke.kind, paint)); + } + } + + let deco_layout = calculate_text_layout_data(shape, text_content, deco_builders, true); + let canvas = render_state.surfaces.canvas_and_mark_dirty(surface_id); + + if let Some(blur_filter) = blur { + let mut blur_paint = Paint::default(); + blur_paint.set_image_filter(blur_filter.clone()); + canvas.save_layer(&SaveLayerRec::default().paint(&blur_paint)); + } + + for (emoji_para, deco_para) in emoji_layout + .paragraphs + .iter_mut() + .zip(deco_layout.paragraphs.iter()) + { + paint_emoji_opaque(canvas, emoji_para, deco_para, &stroke_decos); + } + + if blur.is_some() { + canvas.restore(); + } +} + fn draw_text( canvas: &Canvas, shape: &Shape, @@ -561,27 +722,22 @@ fn draw_text( paint_text_with_emoji_overlay(canvas, shape, paragraph_builder_groups, overlay_emoji); } -/// Renders an inner stroke using mask + SrcIn + DstOver layer structure. +/// Renders a text stroke masked to the glyph shape. /// -/// Layer structure: -/// saveLayer() — outer layer -/// saveLayer() — mask group (isolation) -/// paint mask — opaque fill as clip mask -/// saveLayer(SrcIn) — clips stroke to mask shape -/// paint stroke -/// saveLayer(DstOver) — fill behind the stroke -/// paint fill -/// restore -/// restore -/// restore -/// restore +/// `stroke_mask_blend` selects which side of the glyph the stroke keeps: +/// `SrcIn` for inner strokes (stroke clipped to the glyph), `SrcOut` for outer +/// strokes (stroke kept outside the glyph). When `fill_builders` is provided +/// (inner strokes) the fill is composited with `DstOver` *inside* the masked +/// layer so its anti-aliased edge aligns with the stroke — no seam at the glyph +/// boundary. Outer strokes pass `None` (fill is drawn separately). #[allow(clippy::too_many_arguments)] -fn render_inner_stroke_on_canvas( +fn render_masked_stroke_on_canvas( canvas: &Canvas, shape: &Shape, mask_builders: &mut [Vec], stroke_builders: &mut [Vec], - fill_builders: &mut [Vec], + fill_builders: Option<&mut [Vec]>, + stroke_mask_blend: skia::BlendMode, blur: Option<&ImageFilter>, layer_opacity: Option, ) { @@ -591,60 +747,59 @@ fn render_inner_stroke_on_canvas( canvas.save_layer(&SaveLayerRec::default().paint(&blur_paint)); } - // Opacity layer wraps the entire composition if let Some(opacity) = layer_opacity { let mut opacity_paint = Paint::default(); opacity_paint.set_alpha_f(opacity); canvas.save_layer(&SaveLayerRec::default().paint(&opacity_paint)); } - // Outer layer canvas.save_layer(&SaveLayerRec::default()); - // Mask group layer (isolates mask from parent surface content) canvas.save_layer(&SaveLayerRec::default()); - // Draw opaque mask (full alpha text shape) paint_text(canvas, shape, mask_builders); - // SrcIn layer — only keeps stroke pixels where mask has alpha - let mut src_in_paint = Paint::default(); - src_in_paint.set_blend_mode(skia::BlendMode::SrcIn); - canvas.save_layer(&SaveLayerRec::default().paint(&src_in_paint)); + let mut stroke_paint = Paint::default(); + stroke_paint.set_blend_mode(stroke_mask_blend); + canvas.save_layer(&SaveLayerRec::default().paint(&stroke_paint)); - // Draw stroke paint_text(canvas, shape, stroke_builders); - // Fill with DstOver (behind the stroke, inside SrcIn) - let mut dst_over_paint = Paint::default(); - dst_over_paint.set_blend_mode(skia::BlendMode::DstOver); - canvas.save_layer(&SaveLayerRec::default().paint(&dst_over_paint)); + // Fill with DstOver behind the stroke, inside the masked layer so the fill's + // anti-aliased edge aligns with the stroke (no seam at the glyph edge). + // Outer strokes have no fill here (`None`). + if let Some(fill_builders) = fill_builders { + let mut dst_over_paint = Paint::default(); + dst_over_paint.set_blend_mode(skia::BlendMode::DstOver); + canvas.save_layer(&SaveLayerRec::default().paint(&dst_over_paint)); - paint_text(canvas, shape, fill_builders); + paint_text(canvas, shape, fill_builders); - canvas.restore(); // DstOver layer - canvas.restore(); // SrcIn layer + canvas.restore(); // DstOver layer + } + + canvas.restore(); // SrcIn / SrcOut layer canvas.restore(); // mask group layer canvas.restore(); // outer layer if layer_opacity.is_some() { - canvas.restore(); // opacity layer + canvas.restore(); } if blur.is_some() { - canvas.restore(); // blur layer + canvas.restore(); } } -/// Public API for rendering inner strokes with mask+SrcIn+DstOver approach. #[allow(clippy::too_many_arguments)] -pub fn render_inner_stroke( +fn render_masked_stroke( render_state: Option<&mut RenderState>, canvas: Option<&Canvas>, shape: &Shape, mask_builders: &mut [Vec], stroke_builders: &mut [Vec], - fill_builders: &mut [Vec], + mut fill_builders: Option<&mut [Vec]>, + stroke_mask_blend: skia::BlendMode, surface_id: Option, blur: Option<&ImageFilter>, stroke_bounds_outset: f32, @@ -664,18 +819,20 @@ pub fn render_inner_stroke( let bounds = blur_filter.compute_fast_bounds(text_bounds); if bounds.is_finite() && bounds.width() > 0.0 && bounds.height() > 0.0 { let blur_filter_clone = blur_filter.clone(); + let fill_builders = &mut fill_builders; if filters::render_with_filter_surface( render_state, bounds, target_surface, |state, temp_surface| { let temp_canvas = state.surfaces.canvas(temp_surface); - render_inner_stroke_on_canvas( + render_masked_stroke_on_canvas( temp_canvas, shape, mask_builders, stroke_builders, - fill_builders, + fill_builders.as_deref_mut(), + stroke_mask_blend, Some(&blur_filter_clone), layer_opacity, ); @@ -688,12 +845,13 @@ pub fn render_inner_stroke( } let canvas = render_state.surfaces.canvas_and_mark_dirty(target_surface); - render_inner_stroke_on_canvas( + render_masked_stroke_on_canvas( canvas, shape, mask_builders, stroke_builders, - fill_builders, + fill_builders.as_deref_mut(), + stroke_mask_blend, blur, layer_opacity, ); @@ -701,12 +859,13 @@ pub fn render_inner_stroke( } if let Some(canvas) = canvas { - render_inner_stroke_on_canvas( + render_masked_stroke_on_canvas( canvas, shape, mask_builders, stroke_builders, fill_builders, + stroke_mask_blend, blur, layer_opacity, ); @@ -714,6 +873,70 @@ pub fn render_inner_stroke( Ok(()) } +#[allow(clippy::too_many_arguments)] +pub fn render_inner_stroke( + render_state: Option<&mut RenderState>, + canvas: Option<&Canvas>, + shape: &Shape, + stroke_builders: &mut [Vec], + fill_builders: &mut [Vec], + surface_id: Option, + blur: Option<&ImageFilter>, + stroke_bounds_outset: f32, + layer_opacity: Option, +) -> Result<()> { + let mut mask_builders = shape.get_text_content().paragraph_builder_group_opaque(); + render_masked_stroke( + render_state, + canvas, + shape, + &mut mask_builders, + stroke_builders, + Some(fill_builders), + skia::BlendMode::SrcIn, + surface_id, + blur, + stroke_bounds_outset, + layer_opacity, + ) +} + +#[allow(clippy::too_many_arguments)] +pub fn render_outer_stroke( + render_state: Option<&mut RenderState>, + canvas: Option<&Canvas>, + shape: &Shape, + stroke_builders: &mut [Vec], + surface_id: Option, + blur: Option<&ImageFilter>, + stroke_bounds_outset: f32, + layer_opacity: Option, +) -> Result<()> { + let mut mask_builders = shape.get_text_content().paragraph_builder_group_opaque(); + render_masked_stroke( + render_state, + canvas, + shape, + &mut mask_builders, + stroke_builders, + None, + skia::BlendMode::SrcOut, + surface_id, + blur, + stroke_bounds_outset, + layer_opacity, + ) +} + +fn decoration_rect(y: f32, thickness: f32, text_left: f32, text_width: f32) -> skia_safe::Rect { + skia_safe::Rect::new( + text_left, + y - thickness / 2.0, + text_left + text_width, + y + thickness / 2.0, + ) +} + fn draw_text_decorations( canvas: &Canvas, text_style: &TextStyle, @@ -723,12 +946,7 @@ fn draw_text_decorations( text_width: f32, ) { if let Some(y) = y { - let r = skia_safe::Rect::new( - text_left, - y - thickness / 2.0, - text_left + text_width, - y + thickness / 2.0, - ); + let r = decoration_rect(y, thickness, text_left, text_width); let mut decoration_paint = text_style.foreground(); decoration_paint.set_anti_alias(true); canvas.draw_rect(r, &decoration_paint); diff --git a/render-wasm/src/render/vector.rs b/render-wasm/src/render/vector.rs index 721a02fbc5..04d91552d9 100644 --- a/render-wasm/src/render/vector.rs +++ b/render-wasm/src/render/vector.rs @@ -194,14 +194,12 @@ impl ShapeRenderer for VectorRenderer<'_> { for (kind, stroke_paragraphs) in &mut stroke_shadow_groups { if *kind == StrokeKind::Inner { // Inner stroke masked by the glyph fill (outset 0 here). - let mut mask_builders = text_content.paragraph_builder_group_opaque(); let mut fill_builders = text_content.paragraph_builder_group_from_text(Some(true)); text::render_inner_stroke( None, Some(self.canvas), shape, - &mut mask_builders, stroke_paragraphs, &mut fill_builders, None, @@ -209,6 +207,17 @@ impl ShapeRenderer for VectorRenderer<'_> { 0.0, None, )?; + } else if *kind == StrokeKind::Outer { + text::render_outer_stroke( + None, + Some(self.canvas), + shape, + stroke_paragraphs, + None, + blur_filter.as_ref(), + 0.0, + None, + )?; } else { text::render_with_bounds_outset_overlay_emoji( self.canvas, @@ -250,13 +259,11 @@ impl ShapeRenderer for VectorRenderer<'_> { ); if stroke.render_kind(false) == StrokeKind::Inner { // Inner text stroke: clip to the glyph fill, else it bleeds out. - let mut mask_builders = text_content.paragraph_builder_group_opaque(); let mut fill_builders = text_content.paragraph_builder_group_from_text(None); text::render_inner_stroke( None, Some(self.canvas), shape, - &mut mask_builders, &mut stroke_paragraphs, &mut fill_builders, None, @@ -264,6 +271,17 @@ impl ShapeRenderer for VectorRenderer<'_> { stroke_blur_outset, layer_opacity, )?; + } else if stroke.render_kind(false) == StrokeKind::Outer { + text::render_outer_stroke( + None, + Some(self.canvas), + shape, + &mut stroke_paragraphs, + None, + blur_filter.as_ref(), + stroke_blur_outset, + layer_opacity, + )?; } else { text::render_with_bounds_outset_overlay_emoji( self.canvas, diff --git a/render-wasm/src/shapes/text.rs b/render-wasm/src/shapes/text.rs index 484acf09f3..1ba1381172 100644 --- a/render-wasm/src/shapes/text.rs +++ b/render-wasm/src/shapes/text.rs @@ -400,6 +400,13 @@ impl TextContent { &self.paragraphs } + pub fn has_non_ascii(&self) -> bool { + self.paragraphs + .iter() + .flat_map(|p| p.children()) + .any(|span| !span.text.is_ascii()) + } + pub fn paragraphs_mut(&mut self) -> &mut Vec { self.content_version = self.content_version.wrapping_add(1); &mut self.paragraphs From 40a79c2b5dc573ec64633d8d9e67930f93d78c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?andr=C3=A9s=20gonz=C3=A1lez?= Date: Thu, 2 Jul 2026 09:06:44 +0200 Subject: [PATCH 14/24] :books: Update user guide for 2.17 release (#10518) --- docs/img/styling/background-blur.webp | Bin 0 -> 34700 bytes .../user-guide/design-systems/design-tokens.njk | 9 +++++++-- docs/user-guide/designing/color-stroke.njk | 3 ++- docs/user-guide/designing/layers.njk | 14 ++++++++++++-- .../prototyping-testing/prototyping.njk | 4 ++++ 5 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 docs/img/styling/background-blur.webp diff --git a/docs/img/styling/background-blur.webp b/docs/img/styling/background-blur.webp new file mode 100644 index 0000000000000000000000000000000000000000..3c7a0859ded882dc676f560f7d9b5927e94da7d3 GIT binary patch literal 34700 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

mFv5avM`fT{uv8Z!6377Es~5PsK&VGx80q1m~R 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 K65k#okN5&%6Y)C$ literal 0 HcmV?d00001 diff --git a/docs/user-guide/design-systems/design-tokens.njk b/docs/user-guide/design-systems/design-tokens.njk index 390959a2ed..53f58cdb99 100644 --- a/docs/user-guide/design-systems/design-tokens.njk +++ b/docs/user-guide/design-systems/design-tokens.njk @@ -31,6 +31,7 @@ desc: Learn how to create, manage and apply Penpot Design Tokens using W3C DTCG
  • Description: You can also choose to add a description to your token.
  • Once you have named the token and assigned it a value, click Save to store the token and start referencing it.

    +

    Token value fields suggest existing tokens as you type. Pick a suggestion to insert a reference, or keep typing a custom value.

    Referencing tokens into values (aliases)

    @@ -111,7 +112,7 @@ desc: Learn how to create, manage and apply Penpot Design Tokens using W3C DTCG

    This ensures the spacing is at least 8, even if the base token is smaller.

    Editing a token

    -

    Tokens can be edited by right-clicking the token and selecting Edit token. This will allow you to change the tokens name, value and description. Once the changes are made, click Save.

    +

    Tokens can be edited by right-clicking the token and selecting Edit token. This will allow you to change the tokens name, value and description. Value fields offer the same token suggestions as when creating a token. Once the changes are made, click Save.

    Tokens edit
    @@ -141,12 +142,15 @@ desc: Learn how to create, manage and apply Penpot Design Tokens using W3C DTCG
  • Size and position: width, height, x, y
  • Rotation and border radius
  • Layout spacing: gaps, paddings, margins, min and max widths and heights
  • -
  • Typography: letter spacing and line height
  • +
  • Typography: letter spacing, line height, and composite typography tokens on text layers
  • Stroke width
  • Shadows: x, y, blur, spread
  • Blur amount
  • Click the token control on a field to open a list of applicable tokens from your active sets and themes. Select a token to apply it; a token pill shows the bound token. Use the pill menu to detach the token when you need a custom value again.

    +

    On text layers, the Typography section shows a composite typography token row when one is applied. Open the token list from the section header to pick or switch tokens without going to the Tokens panel. Hover a token name to see its resolved values (font family, size, weight, and the rest).

    +

    When you multi-select text layers that share typography tokens, the Typography section shows the applied token. If the selection mixes different tokens, detach them from there or apply a new one to the whole selection.

    +

    Typography options in the dropdown list show resolved values on hover, so you can tell styles apart before applying them.

    When a numeric field has a token applied, drag-to-change is disabled for that field. Edit the token or detach it first.

    Token list on a numeric field in the Design sidebar @@ -528,6 +532,7 @@ ExtraBold Italic

    Apply a Typography token

    A Typography composite token can be applied to a full text layer to set all typography properties at once. This lets you manage complete text styles using a single token instead of combining multiple individual ones.

    +

    Apply it from the Tokens panel, or from the Typography section in the Design sidebar when a text layer is selected.

    When applying a Typography composite token to a layer, any previously applied Typography composite token or style will be detached. The same happens in reverse. Only one of them can be active at a time.

    Shadow

    diff --git a/docs/user-guide/designing/color-stroke.njk b/docs/user-guide/designing/color-stroke.njk index d6d227fac3..012b45b264 100644 --- a/docs/user-guide/designing/color-stroke.njk +++ b/docs/user-guide/designing/color-stroke.njk @@ -57,7 +57,7 @@ desc: Style your designs with Penpot's options! Learn about color fills, gradien
  • Color type - Solid, gradient, or image.
  • Sliders - Easily manage settings like brightness, saturation or opacity.
  • Values - Set precise color values. Available formats depend on the selected color model.
  • -
  • Libraries - Switch between recent colors and libraries.
  • +
  • Libraries - Switch between recent colors and libraries. Color tokens in a library can be shown as a grid or a list. Use the list view when you need to scan names or work with long token lists.
  • Color palette - A quick launcher of the palette with the selected library.
  • @@ -116,6 +116,7 @@ desc: Style your designs with Penpot's options! Learn about color fills, gradien
  • Style - solid, dotted, dashed, mixed
  • Visibility - show or hide the stroke without removing it
  • +

    When the style is set to dashed, two extra fields appear to control the dash and gap length in pixels.

    You can add as many strokes as you want to the same layer.

    Multiple strokes diff --git a/docs/user-guide/designing/layers.njk b/docs/user-guide/designing/layers.njk index 474432b66c..2c55a7a7ca 100644 --- a/docs/user-guide/designing/layers.njk +++ b/docs/user-guide/designing/layers.njk @@ -461,8 +461,18 @@ You can choose to edit individual nodes or create new ones. Press Esc

    Blur

    -

    You can set a blur for each and every layer at Penpot.

    -

    Applying a lot and/or big values for blurs can affect Penpot’s performance as it requires a lot from the browser.

    +

    You can add blur effects to layers from the Design sidebar. Penpot supports two types:

    +
      +
    • Layer blur blurs the layer content itself.
    • +
    • Background blur blurs whatever sits behind the layer. Use it for frosted-glass or depth effects. Background blur requires the WebGL renderer to be enabled.
    • +
    +

    Background blur is not included in exported files yet (PNG, SVG, PDF, and others). The exporter still uses the legacy SVG renderer, so the effect only shows in the workspace and View mode. Export support is a current priority and will land in an upcoming release.

    +
    + Colorful shapes behind a frosted panel with background blur applied +
    Background blur affects the layers behind the shape, not the shape itself.
    +
    +

    Click + in the Blur section to add an effect. You can apply both types on the same layer. Use the type selector to switch between them, the eye icon to show or hide an effect without removing it, and the value field to set the blur amount.

    +

    Applying many or large blur values can affect Penpot’s performance, as it requires a lot from the browser.

    When assigning a value to a token, you can reference existing tokens - these are called aliases at the DTCG Glossary.

    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 X8gV#cm2MkvzFJvaHm^A6@$dftyL&bg diff --git a/render-wasm/src/render/text.rs b/render-wasm/src/render/text.rs index 4f2d521179..d70993e6b9 100644 --- a/render-wasm/src/render/text.rs +++ b/render-wasm/src/render/text.rs @@ -569,11 +569,11 @@ fn draw_text( /// paint mask — opaque fill as clip mask /// saveLayer(SrcIn) — clips stroke to mask shape /// paint stroke +/// saveLayer(DstOver) — fill behind the stroke +/// paint fill +/// restore /// restore /// restore -/// saveLayer(DstOver) — fill behind the stroke -/// paint fill -/// restore /// restore #[allow(clippy::too_many_arguments)] fn render_inner_stroke_on_canvas( @@ -615,10 +615,7 @@ fn render_inner_stroke_on_canvas( // Draw stroke paint_text(canvas, shape, stroke_builders); - canvas.restore(); // SrcIn layer - canvas.restore(); // mask group layer - - // Fill with DstOver (behind the stroke result) + // Fill with DstOver (behind the stroke, inside SrcIn) let mut dst_over_paint = Paint::default(); dst_over_paint.set_blend_mode(skia::BlendMode::DstOver); canvas.save_layer(&SaveLayerRec::default().paint(&dst_over_paint)); @@ -626,6 +623,8 @@ fn render_inner_stroke_on_canvas( paint_text(canvas, shape, fill_builders); canvas.restore(); // DstOver layer + canvas.restore(); // SrcIn layer + canvas.restore(); // mask group layer canvas.restore(); // outer layer if layer_opacity.is_some() { From 28b537190193f2ebd4c152c94ead0b2fdc98c43e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elena=20Torr=C3=B3?= Date: Wed, 1 Jul 2026 18:10:46 +0200 Subject: [PATCH 13/24] :wrench: Improve text strokes in texts with emoji (#10519) --- .../ui/render-wasm-specs/texts.spec.js | 5 +- ...-file-with-emoji-and-text-decoration-1.png | Bin 171427 -> 171870 bytes render-wasm/src/render.rs | 63 ++- render-wasm/src/render/shadows.rs | 13 +- render-wasm/src/render/text.rs | 412 +++++++++++++----- render-wasm/src/render/vector.rs | 26 +- render-wasm/src/shapes/text.rs | 7 + 7 files changed, 413 insertions(+), 113 deletions(-) diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js b/frontend/playwright/ui/render-wasm-specs/texts.spec.js index 23a4701bbd..b474c7ca05 100644 --- a/frontend/playwright/ui/render-wasm-specs/texts.spec.js +++ b/frontend/playwright/ui/render-wasm-specs/texts.spec.js @@ -209,7 +209,10 @@ test("Renders a file with emoji and text decoration", async ({ page }) => { pageId: "82d128e1-d3b1-80a5-8006-ae60fedcd5e8", }); await workspace.waitForFirstRenderWithoutUI(); - await expect(workspace.canvas).toHaveScreenshot(); + await expect(workspace.canvas).toHaveScreenshot({ + maxDiffPixelRatio: 0, + threshold: 0.1, + }); }); test("Renders a file with multiple emoji", async ({ page }) => { diff --git a/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-emoji-and-text-decoration-1.png b/frontend/playwright/ui/render-wasm-specs/texts.spec.js-snapshots/Renders-a-file-with-emoji-and-text-decoration-1.png index c2ed2f23210a3329f737c36d020868db55ecf10f..70ba1f8cbf37ceb196d1473fa1a8bbbd1fc8d00e 100644 GIT binary patch literal 171870 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%0A8G_Ay$a+0+TB|9Ztzl5>nT8S*> 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