6187 Commits
Author SHA1 Message Date
zehjotkah 8b70dea163 feat: expression string method autocomplete (#5421)
## Description

Added autocomplete support for safe string and array methods in the
expression editor, as suggested by @TrySound in PR #5403.

## Changes

- Exported `allowedStringMethods` and `allowedArrayMethods` from
`packages/sdk/src/expression.ts`
- Enhanced the expression editor's autocomplete to suggest safe methods
when typing after a variable (e.g., system)
- Methods are displayed with parentheses for clarity (e.g.,
`toLowerCase()`, `replace()`, `split()`)
- Autocomplete shows helpful labels: "string method" or "array method"

## How to Test

1. Open any project in the builder
2. Click the expression editor icon next to a text property
3. Type a variable name followed by a dot (e.g., `system.`)
4. You should see autocomplete suggestions for safe string methods like
`toLowerCase()`, `replace()`, `split()`, etc.
5. Type a few letters to filter (e.g., `title.to` shows only methods
starting with "to")
6. Select a method and it will be inserted with parentheses

## Related

- Builds on PR #5403 which enabled these safe methods in the expression
engine

<img width="343" height="204" alt="Bildschirmfoto 2025-10-09 um 22 33
03"
src="https://github.com/user-attachments/assets/206a36e8-1d68-4e2a-a045-1f9e95067a28"
/>
0.231.0
2025-10-15 16:08:41 +04:00
Bogdan Chadkin 631743b860 feat: remove free domains (#5426)
<img width="357" height="297" alt="Screenshot 2025-10-15 at 11 54 23"
src="https://github.com/user-attachments/assets/f4fa0c5f-89b4-4f9b-9152-bf339c2e8f55"
/>
2025-10-15 12:14:11 +04:00
zehjotkah 4640ceadeb feat: enabling safe functions in expression engine (#5403)
## Description

allowing toLowerCase(), replace(), and split() to be used in the
expression editor.

Real life use-case explained in the discord message. 

https://discord.com/channels/955905230107738152/1418928616648998992/1419623805541814393

## Steps for reproduction

1. use any of the mentioned functions in the expression editor
2. they're currently not allowed even though they'd be safe to use 
3. those functions (and presumably others as well) can be used in hosted
webstudio by deploying my changes on a locally hosted webstudio editor,
using the functions, and copying the pages containing the functions to
the hosted version.
-> validation check bypass 

## Code Review

- [x] hi @kof, I need you to do
  - conceptual review (does webstudio WANT to allow these functions?)
  - test it on preview

## Before requesting a review

- [x] made a self-review
- [x] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
0000)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
2025-10-10 01:01:03 +04:00
Bogdan Chadkin a9f838a894 fix: upload unoptimized inception images (#5419)
This fixes the issue with uploading avif which is not supported as image
source.
2025-10-05 13:50:14 +03:00
Bogdan Chadkin 65017634ab feat: add download asset button (#5417)
Ref https://github.com/webstudio-is/webstudio/issues/5416

Downloading assets is forbidden in view mode and when user is on free
plan.

<img width="332" height="374" alt="Screenshot 2025-10-02 at 21 34 34"
src="https://github.com/user-attachments/assets/8695b5e4-68b4-484d-8425-37a2de81203f"
/>
2025-10-02 22:52:05 +03:00
Oleg Isonen 7decfeb9d8 feat: Add Inception banner instead of navigation item (#5414)
## Description

<img width="263" height="534" alt="image"
src="https://github.com/user-attachments/assets/2618295b-fd34-425f-9339-b278b60365d7"
/>
2025-10-01 01:02:32 +02:00
Oleg Isonen 1963572cb5 feat: Add Inception link to the dashboard (#5413)
## Description

For a better discovery

<img width="268" height="458" alt="image"
src="https://github.com/user-attachments/assets/568d0f90-3579-401f-8232-8bbe8b21130d"
/>
2025-09-30 15:30:25 +02:00
Bogdan Chadkin de444a3501 fix: copy paste search params in resources (#5412)
Reproduced when tried to insert the new baserow template
2025-09-27 16:47:49 +03:00
Bogdan Chadkin 021c62e7a2 feat: support animations in static export (#5411)
This enables building private animation library with static websites and
user clicks download button.
2025-09-27 10:57:25 +03:00
Bogdan Chadkin a202648367 fix: show resource validation error as response (#5402)
Sometimes users are able to save broken resource
for example without header value. We need to prevent failing all
requests and instead fail only broken one.
2025-09-19 14:52:34 +03:00
Bogdan Chadkin 05d8baf21a fix: reduce patch size to let users duplicate huge pages (#5400)
User is trying to duplicate huge page and gets "413 Content Too Large".
Here I'm trying to reduce patch request size by removing revise patches
which are not used on server.
2025-09-18 23:32:05 +03:00
Bogdan Chadkin 62f969cccb fix: show href on link in content mode (#5396)
Got broken when we switched links to element component.

<img width="844" height="466" alt="Screenshot 2025-09-09 at 13 50 45"
src="https://github.com/user-attachments/assets/a4f0c969-9003-4ea7-aef0-22014f307884"
/>
2025-09-09 19:09:14 +03:00
Bogdan Chadkin 4e5d82983e fix: handle headers in graphql resource (#5395) 2025-09-09 13:52:03 +03:00
Bogdan Chadkin e87cd94819 feat: add cache max age and body type to resource UI (#5393)
Ref https://github.com/webstudio-is/webstudio/issues/3691

<img width="347" height="613" alt="Screenshot 2025-09-07 at 20 10 00"
src="https://github.com/user-attachments/assets/50d68199-7bc7-41e2-b607-66d20cfc6e5d"
/>
0.229.0
2025-09-07 23:44:41 +03:00
Bogdan Chadkin f558311897 feat: load data before saving resource variable (#5392)
Ref https://github.com/webstudio-is/webstudio/issues/3691

- new resource loader with queue to avoid bloating network with huge
responses
- data can be loaded for new variable before saving, easier to preview
result



https://github.com/user-attachments/assets/5c26c5a2-fd33-401b-a4d2-a321c34ca083
2025-09-06 17:09:53 +03:00
Bogdan Chadkin 91588c90be feat: support json in resource search params and headers (#5387)
Ref https://github.com/webstudio-is/webstudio/issues/3691

This should improve experience when working with baserow filters or
similar backends.

<img width="641" height="347" alt="Screenshot 2025-09-01 at 12 19 35"
src="https://github.com/user-attachments/assets/7be1e967-729a-4025-9d4e-112c8e4162ad"
/>
2025-09-01 13:50:42 +02:00
Ivan Starkov d626b8bfa5 build: Update certificates (#5388)
## Description

1. What is this PR about (link the issue and add a short description)

## Steps for reproduction

1. click button
2. expect xyz

## Code Review

- [ ] hi @kof, I need you to do
  - conceptual review (architecture, feature-correctness)
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [ ] made a self-review
- [ ] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
0000)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
2025-09-01 14:40:35 +03:00
Bogdan Chadkin cdb2a9581c feat: add search params list to resource UI (#5384)
Ref https://github.com/webstudio-is/webstudio/issues/3691

Editing search params separately from url can improve experience working
with external CMS or databases like baserow.

Also made headers list more compact and aligned with search params.
Validation is simplified, empty pairs will be just ignored without
blocking user with validation errors.


https://github.com/user-attachments/assets/3102d2c8-a902-4e86-8011-d71346fb5491
2025-09-01 09:49:43 +02:00
Bogdan Chadkin 2c461b431b fix: show proper error when dropping a too big file (#5385)
Fixes https://github.com/webstudio-is/webstudio/issues/5326
2025-09-01 01:37:54 +02:00
Bogdan Chadkin 973d9df4d5 feat: new resources dialog (#5383)
Ref https://github.com/webstudio-is/webstudio/issues/3691

- moved response preview into resource dialog
- increased dialog size and centered it
- added maximize button to resource dialog
- removed inspect option from dropdown
- refactored centering dialogs without transform to fix nested popovers
positioning

https://github.com/user-attachments/assets/901e086b-afcd-42e9-8866-d62d6cb662d2
2025-08-27 20:48:51 +02:00
Bogdan Chadkin f42488a8f0 fix: decode path params in builder (#5382)
User got encoded Cyrillic slugs when tested in builder. Now decoded the
result of URLPattern parsing.
2025-08-25 17:43:32 +02:00
Bogdan Chadkin 0376075605 feat: cache resources (#5381)
Ref https://github.com/webstudio-is/webstudio/issues/4077

How it works

- Cache-Control opts in caching (Cache-Control: max-age=3600)
- cached response is matched by url, method and body
- cache is invalidated with Cache-Control change
- responses stored with the cache are not replicated across regions
- responses are not shared between projects

Link for testing
https://test-cache-hcevl.wstd.work/?message=hello
2025-08-25 17:12:20 +02:00
Bogdan Chadkin 217b026ab3 build: update https certificates (#5371) 2025-08-17 18:43:15 +02:00
Bogdan Chadkin 05a2dd290e feat: allow user to add asset description (#5369)
Ref https://github.com/webstudio-is/webstudio/issues/3263

Now users can control "alt" for all image uses with asset description.



https://github.com/user-attachments/assets/c0e5ae4b-d2b0-4ec1-bf93-c385816369d1
0.228.0
2025-08-12 15:57:38 +02:00
Bogdan Chadkin 4f7eb26b5f fix: avoid optimizing .ico in docker template (#5368)
IPX we use for image generation does not support .ico format and fails
to process it. Here I just skip image optimization for .ico and pass url
directly.
2025-08-12 01:33:59 +02:00
Bogdan Chadkin 76c436ca1e feat: allow changing asset name (#5367)
Ref https://github.com/webstudio-is/webstudio/issues/3262
https://github.com/webstudio-is/webstudio/issues/3272

This solves a couple of issues.

1. Gives a user ability to change name of uploaded asset.
2. strips internal suffix from filenames in UI

<img width="626" height="541" alt="magic_1"
src="https://github.com/user-attachments/assets/f9c91ac8-cc67-4905-9e86-bf0cbbeae14a"
/>
2025-08-10 20:19:15 +02:00
Bogdan Chadkin fb466caed1 feat: show when asset is used (#5365)
Ref https://github.com/webstudio-is/webstudio/issues/572
https://github.com/webstudio-is/webstudio/issues/3261

- made settings gear visible when asset is used anywhere
- when asset is used delete button shows dialog with all usages

<img width="235" height="149" alt="image"
src="https://github.com/user-attachments/assets/50fc7e45-fb84-451d-9825-592b3ef45388"
/>



<img width="277" height="288" alt="image"
src="https://github.com/user-attachments/assets/37187a5c-92b5-413c-bcdf-caaf506525a4"
/>


<img width="428" height="246" alt="Screenshot 2025-08-09 at 11 30 37"
src="https://github.com/user-attachments/assets/e77d262a-3de0-4d46-b681-b38becb55862"
/>
2025-08-09 15:14:22 +02:00
Bogdan Chadkin 2a13c3d077 fix: keep property in advanced panel when use color thumb (#5364)
Edited value lost "listed" flag when threw it out of advanced panel.
2025-08-08 15:55:29 +02:00
Bogdan Chadkin c62982fdac fix: show proper labels in content block (#5363)
- content block menu now use `<tag>` format for label
- add human radable labels in default content block template

<img width="629" height="567" alt="Screenshot 2025-08-07 at 22 20 39"
src="https://github.com/user-attachments/assets/b8637d1f-892e-4104-82ff-3de5a03a192d"
/>
2025-08-07 22:29:42 +02:00
Bogdan Chadkin 4e775d9a94 fix: set true by default for new boolean properties/attributes (#5362)
Before we set false by default for boolean properties and attributes
which is less intuitive and always requires additional click to switch
boolean on.

Now when user add for example aria-atomic attribute it gets true by
default.
When user see initial property, for example disabled in input element,
it gets false.

<img width="241" height="585" alt="Screenshot 2025-08-07 at 19 40 22"
src="https://github.com/user-attachments/assets/9574e885-febb-42e5-8dd4-a7984a31b0b5"
/>
2025-08-07 20:50:19 +02:00
Bogdan Chadkin d3da479511 fix: fallback video to provided url for self hosted websites (#5357) 0.227.0 2025-08-04 16:07:05 +02:00
Bogdan Chadkin bc599ad37b fix: access available features from product plans (#5358)
This will let us to configure available features for each plan.
2025-08-04 14:11:57 +02:00
Bogdan Chadkin a7a019f2f6 fix: remove vercel route configs (#5355)
These official documented route configs started to wipe whole builder.
We should migrate away from vercel ASAP.
2025-08-04 00:40:53 +02:00
Bogdan Chadkin 0960101fa3 fix: accept any string in <iframe> name attribute (#5349)
Fixes
https://discord.com/channels/955905230107738152/1400906922235920445/1400906922235920445

The spec does not clearly indicate possible values and in case of iframe
and object name attribute accepts any string.
0.226.0
2025-08-03 19:56:05 +02:00
Bogdan Chadkin c2bf7d4af2 feat: support self-hosting animations (#5341)
While animations source code is still private
here enabled publishing minified version of it
so users who self-hosting websites could deploy.
them with working animations.
2025-08-03 19:51:35 +02:00
Oleg Isonen dda59fdd36 chore: Add the note for animation engine license (#5351)
Add proprietary license for animations engine

## Description

1. What is this PR about (link the issue and add a short description)

## Steps for reproduction

1. click button
2. expect xyz

## Code Review

- [ ] hi @kof, I need you to do
  - conceptual review (architecture, feature-correctness)
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [ ] made a self-review
- [ ] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
0000)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
2025-08-03 19:25:05 +02:00
Oleg Isonen 8e72a3c069 chore: Update LICENSE for sdk-components-animation (#5350)
For simplicity we are changing the license in this package to be the
same as the ./private-src

## Description

1. What is this PR about (link the issue and add a short description)

## Steps for reproduction

1. click button
2. expect xyz

## Code Review

- [ ] hi @kof, I need you to do
  - conceptual review (architecture, feature-correctness)
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [ ] made a self-review
- [ ] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
0000)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
2025-08-03 19:24:45 +02:00
Bogdan Chadkin 0f13788fdb fix: support older browsers in docker template (#5346)
URL.canParse is very new method and need to be polyfilled. Docker is the
only place it is used.
2025-08-03 14:39:16 +02:00
Bogdan Chadkin fc033006a4 fix: relax redirects validation (#5348)
Fixes https://github.com/webstudio-is/webstudio/issues/5337

1. checking specific characters will always be error prone
2. checking matching paths is no longer relevant with `/*` which matches
them all
3. added check to validate url or path with `new URL()`
2025-08-03 14:11:22 +02:00
Bogdan Chadkin ee374471ef chore: drop support for legacy shared url (#5347)
It's 1.5 years since we switched to new subdomain based shared url
format.
2025-08-03 12:35:56 +02:00
Bogdan Chadkin aff636940b chore: drop legacy AI prompts and logic (#5345)
All of this is very outdated and does not make a lot of sense to have in
our code base.
2025-08-03 10:21:10 +02:00
Bogdan Chadkin 49bb819ab1 fix: support videos in self-hosted websites (#5340)
Ref
https://discord.com/channels/955905230107738152/955905231227609158/1400561168648638576

User tried to self hosted a website with video component which got
converted to /cgi/video which does not exist in self hosted targets.

Here moved the logic into own custom loader and fall back to original
url.
2025-08-03 02:12:42 +02:00
Bogdan Chadkin 6bc16940e0 chore: drop AI from UI (#5344)
Our first AI experiment is barely used. And we don't want our users to
confuse it with upcoming Inception. The next integrated with builder
solution will be based on Inception.
2025-08-03 02:04:26 +02:00
Bogdan Chadkin d7e757b59b fix: avoid using global color for head slot and xml (#5342)
Fixes
https://discord.com/channels/955905230107738152/1398319996832059574/1398319996832059574

Here explicitly specified black color for text in xml and head slot.
This prevents white color on root to override text.
2025-08-02 22:44:10 +02:00
Bogdan Chadkin 9409657219 fix: let user type "auto" into duration input (#5343)
Ref
https://discord.com/channels/955905230107738152/1401100781989531718/1401100781989531718


https://github.com/user-attachments/assets/7d6c0a6e-5e92-4d90-84e2-460824675d99
2025-08-02 22:43:56 +02:00
Bogdan Chadkin ac6b649397 fix: allow <p> inside of <hgroup> (#5338)
Ref https://github.com/webstudio-is/webstudio-community/discussions/241

Never supported heading outline algorithm was never supported and the
latest update to html spec allowed paragraphs as part of this removal
for lower level subtitles or descriptions.

Though indices tables were not updated. I [sent
PR](https://github.com/whatwg/html/pull/11524)
2025-08-02 16:14:25 +02:00
Bogdan Chadkin 94b1fb9951 fix: consider Text and Link components as rich text (#5334)
This prevents editing Text and Link components parent and instead
enforces editing these components as rich text containers.
2025-07-23 20:50:24 +02:00
Bogdan Chadkin 4abb7cf3e2 feat: support svg properties in style panel (#5332)
Ref https://github.com/webstudio-is/webstudio/issues/5258

Newer mdn-data contains all stylable svg properties (they finally got
through some documentation and implementation process).

Tweaked all experimental stuff and ditched obsolete properties.

<img width="286" height="538" alt="image"
src="https://github.com/user-attachments/assets/1e579be0-0a12-4013-ab04-09d5e008aeed"
/>
0.225.0
2025-07-18 18:04:26 +02:00
Bogdan Chadkin 1eb11fdb34 feat: autocomplete SVG attributes (#5331)
Ref https://github.com/webstudio-is/webstudio/issues/5258

Now user will see all available attributes for any SVG element.

<img width="283" height="507" alt="image"
src="https://github.com/user-attachments/assets/750c3027-aada-4e55-b429-c5adb5449158"
/>
2025-07-18 15:47:35 +02:00
Bogdan Chadkin 60ab7c7b68 feat: support svg elements (#5330)
Ref https://github.com/webstudio-is/webstudio/issues/5258

Now users can create svg elements and paste svg code or html with svg.



https://github.com/user-attachments/assets/77738ede-e4ee-4fd8-b128-5679170b30b4
2025-07-18 02:38:33 +02:00