6174 Commits
Author SHA1 Message Date
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
Oleg Isonen 82ecb10d34 feat: Manual save command (#5327)
Closes https://github.com/webstudio-is/webstudio/issues/5325

## Description

As a user I am sometimes afraid my changes weren't saved. So this is an
extra layer of confidence to know that changes are actually saved.




https://github.com/user-attachments/assets/9135e225-2c12-450b-b6d0-680d9ecd7454

<img width="207" height="175" alt="image"
src="https://github.com/user-attachments/assets/49ecdbad-e191-4088-8046-99b2b55070f7"
/>

## 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-07-17 17:24:27 +02:00
Bogdan Chadkin d5d1fed5a8 fix: avoid body when insert section from marketplace (#5329)
We remove body from pages when insert section
but I forgot to add a check for body element which replaced Body
component for new pages.
2025-07-17 14:20:02 +02:00
Bogdan Chadkin f46095ea2a fix: show only one "delete instance" command (#5324)
<img width="501" height="213" alt="image"
src="https://github.com/user-attachments/assets/8a5223e6-dbb7-42c6-89fa-1c8dd3945b52"
/>
2025-07-17 12:01:39 +02:00
Bogdan Chadkin 4a9fe16fd6 refactor: fix inception paste typo (#5323) 2025-07-12 23:57:02 +02:00
Bogdan Chadkin 111564c88f feat: automatically paste tailwind when html has inception mark (#5322)
We want to reduce friction in pasting from inception and will
automatically process tailwind classes and generate styles when paste
into builder without using command panel.
2025-07-12 18:43:05 +02:00
Bogdan ChadkinandOleg Isonen 5632a40940 feat: allow restore from published backup (#5320)
Ref https://github.com/webstudio-is/webstudio/issues/5276

---------

Co-authored-by: Oleg Isonen <oleg008@gmail.com>
2025-07-11 19:05:31 +02:00
Oleg Isonen a57783eb69 chore: Delete support hub (#5317)
## Description

Product was discontinued

## 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-07-07 11:59:12 +02:00
Bogdan Chadkin 9a1486b306 fix: avoid error when domain does not exist in iana (#5315)
We use iana registry to find if cloudflare nameserver is used for domain
and we can avoid using www.
2025-07-06 14:03:10 +03:00
Bogdan Chadkin 4c2e7cd955 fix: improve www detection (#5314)
We detect cloudflare to preserve root domain and add www for everything
else. Now we check official dns registry for top level domains and check
its data for required nameservers.
2025-07-02 17:00:38 +03:00
Bogdan Chadkin 03c7366b04 feat: create projects with 404 page on all plans (#5309)
Ref https://github.com/webstudio-is/webstudio/issues/2782

Here I did a few things

- allow `/*` path on free plan
- allow changing status code on free plan
- create "Not Found" page for all new projects



https://github.com/user-attachments/assets/1f36882f-3c09-4814-a1ee-d6bdfd468467
0.223.0
2025-07-01 18:56:15 +03:00
Bogdan Chadkin 19a98fa1ae fix: order routes before navigating in preview (#5311)
Ref https://github.com/webstudio-is/webstudio/issues/5223

Navigating within preview didn't work well because we relied on order of
creation and more inclusive routes like `/*` could match before
`/my-page`.

Here fixed it with routes sorting. The algorithm is very simplified but
covers our usecases within builder.
2025-07-01 18:45:25 +03:00
Bogdan Chadkin 395ebc44f2 fix: convert space-* on breakpoints when paste tailwind (#5308)
Ref https://github.com/webstudio-is/webstudio/issues/2651

Didn't consider spaces on breakpoints when converted space-* to gap for
example `md:space-x-6` -> `md:gap-x-6`
2025-06-30 13:33:18 +03:00
Bogdan Chadkin 218f161f51 fix: detect registrar by nameservers (#5305)
We detect cname flattening by registrar though when nameservers are
rerouted legal registar stays the same.

So instead we check if nameservers are cloudflare and can use cname
flattening.
2025-06-28 23:01:30 +03:00