## 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"
/>
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.
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.
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"
/>
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()`
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.
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.
## 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
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.
Ref https://github.com/webstudio-is/webstudio/issues/2651
When convert tailwind breakpoints to webstudio breakpoints our algorithm
can find holes and will stop conversion. Though this will create
mobile-first breakpoints which users do not expect.
Here I added workaround to specify "unset" value on property when
tailwind breakpoints has holes. Here's examples
**sm:opacity-20** - here the hole is in the beginning, opacity: 0.2 can
be defined on base breakpoint but we need to fill with something
`max-width: 479`
**max-sm:opacity-10 md:opacity-20** - here the holr is in the middle, we
have `max-width: 479` and base breakpoint but no `max-width: 767`
<img width="335" alt="image"
src="https://github.com/user-attachments/assets/94d621c1-527a-4608-8529-53971af26b8c"
/>
<img width="321" alt="image"
src="https://github.com/user-attachments/assets/fd232773-dad5-4fde-8748-1d13645a4adf"
/>
## 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