6407 Commits
Author SHA1 Message Date
Oleg Isonen 2a32ebe209 wip workspaces ::migrate:: 0.261.0 2026-04-15 22:27:25 +01:00
Oleg Isonen 2ac5d2a7ee ::migrate:: 2026-04-15 22:27:25 +01:00
Oleg Isonen d4ae9c3ff1 redepploy 2026-04-15 22:27:25 +01:00
Oleg Isonen 4c05e57702 lostpixel trigger 2026-04-15 22:27:25 +01:00
Oleg Isonen 9cfe25e35e fix: use valid CSS color space names in toValue()
colorjs uses internal short names (p3, a98rgb, prophoto) that don't
match the CSS predefined color space identifiers required by the spec:
  - p3      → display-p3
  - a98rgb  → a98-rgb
  - prophoto → prophoto-rgb

This caused toValue() to emit invalid CSS like `color(p3 ...)`, which
the css-tree lexer rejects when re-validating the value in the CSS value
input (e.g. after a round-trip through the style panel).
2026-04-15 22:27:25 +01:00
Oleg Isonen acd0e47213 redirects 2026-04-15 22:27:25 +01:00
Oleg Isonen 8c25e2e6fe 0.253.0 2026-04-15 22:27:25 +01:00
Oleg Isonen 63d71ec3c1 0.248.0 2026-04-15 22:27:25 +01:00
Oleg Isonen e2261a8fbe media conditions 2026-04-15 22:27:25 +01:00
Oleg Isonen 617fac81e4 fix svg upload 2026-04-15 22:27:25 +01:00
Oleg Isonen c3fb844870 publish enh, commands panel enh, instances search 2026-04-15 22:27:25 +01:00
Oleg Isonen 44c64b8a64 publish enh, commands panel enh, instances search 2026-04-15 22:27:25 +01:00
Oleg Isonen ca307252ab tokens conflict management 2026-04-15 22:27:25 +01:00
Oleg Isonen 713dd1919a convert instance 2026-04-15 22:27:25 +01:00
Oleg Isonen 8fddc4b2d9 fix paste and settings permissions 2026-04-15 22:27:25 +01:00
Oleg Isonen de95f20fd4 context menu 2026-04-15 22:27:25 +01:00
Oleg Isonen 3ba04b542a test 2026-04-15 22:27:25 +01:00
Oleg Isonen 44c2ad258e test 2026-04-15 22:27:25 +01:00
Oleg Isonen f5eea339f1 test 2026-04-15 22:27:25 +01:00
Oleg Isonen 96bc1cf170 media conditions 2026-04-15 22:27:25 +01:00
Oleg Isonen 91d347bc72 fix svg upload 2026-04-15 22:27:25 +01:00
Oleg Isonen e876cec1b7 publish enh, commands panel enh, instances search 2026-04-15 22:27:25 +01:00
Oleg Isonen 480157584a publish enh, commands panel enh, instances search 2026-04-15 22:27:25 +01:00
Oleg Isonen 928ec33076 tokens conflict management 2026-04-15 22:27:25 +01:00
Oleg Isonen 6a356a33fe convert instance 2026-04-15 22:27:25 +01:00
Oleg Isonen 33c4e63dad fix paste and settings permissions 2026-04-15 22:27:25 +01:00
Oleg Isonen 83e46fd95e context menu 2026-04-15 22:27:25 +01:00
Oleg Isonen 6f84ac9a24 test 2026-04-15 22:27:25 +01:00
Oleg Isonen 8c2af9b520 test 2026-04-15 22:27:25 +01:00
Oleg Isonen a89c65f874 test 2026-04-15 22:27:25 +01:00
Ivan Starkov d7b5e4d43b Try fix 2026-04-15 22:27:24 +01:00
Ivan Starkov ef67053339 Try prod release again 2026-04-15 21:27:18 +00:00
Oleg Isonen 5c6af9942b fix: use DialogActions consistently in all dialogs with footer buttons (#5701) 2026-04-15 23:25:06 +02:00
Oleg Isonen 618f901c5c chore: add PlanConfig type with name and prices to parsePlansEnv (#5702)
## 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
2026-04-15 23:18:38 +02:00
Oleg Isonen b44e0fa452 feat: expose missing states to Radix components (#5699)
- Add open/closed states to AccordionItem and AccordionHeader (had none)
- Add closed state to AccordionTrigger (only had open)
- Fix AccordionContent height animation styles in template
- Fix deduplication bug in style panel: component states no longer
appear twice when the instance already has styles for those selectors
- Add indeterminate state to Checkbox root and CheckboxIndicator
- Add open/closed states to all Collapsible parts
- Add open/closed states to DialogTrigger, DialogOverlay, DialogContent
- Add open/closed states to NavigationMenuTrigger, MenuContent, Viewport
- Add open/closed states to PopoverTrigger and PopoverContent
- Add open/closed states to SelectTrigger and SelectContent
- Add checked/unchecked states to SelectItem
- Add inactive state to TabsTrigger and add states to TabsContent
- Add closed/delayed-open/instant-open states to TooltipTrigger and
Content
- Fix selector format: use '[data-state="value"]' (quoted) everywhere to
match css-tree normalization output
- Update tests to use quoted selector form matching real parser output

## 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
2026-04-15 16:31:58 +02:00
Oleg Isonen 198ae5d65a fix: Cross rule CSS var resolution (#5698)
## Description

Pasting this will now resolve correctly

```html
<style>
.my-parent {
    --clr-red: #f00;
    min-height: 75vh;
}

.my-child {
    background: var(--clr-red);
    min-height: 50%;
}
</style>

<div class="my-parent">
    <div class="my-child"></div>
</div>
```
2026-04-14 18:34:40 +02:00
Oleg Isonen 09c89376fb chore: fix workspaces seats counter (#5693) 2026-04-13 20:49:13 +02:00
Oleg Isonen 4748fa5f1e fix: restore short --variable label in CSS value input (#5694)
## Problem

Commit cc20991b accidentally changed `itemToString` for `var` type
values to use `toValue(item)`, which produces `var(--variable,
fallback)` instead of the intended short `--variable` label.

This meant the CSS value input (when unfocused, and in the autocomplete
dropdown) showed the full `var(--variable, fallback)` string, which is
too long for small inputs and not how it previously displayed.

## Fix

- Restored `itemToString` to return `--${item.value}` for var types
(short label)
- Updated the `onFocus` handler to explicitly call `toValue(value)` for
var types, so the full `var(--variable, fallback)` is shown when the
user focuses the input to edit it
2026-04-13 20:07:14 +02:00
Oleg Isonen 9233a522e4 fix: truncate long labels in CSS value input autocomplete (#5692)
## 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
2026-04-13 05:06:16 +02:00
Oleg Isonen 64f320f920 fix: exclude test and story files from tsconfig.dts.json builds (#5691)
## 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
2026-04-12 22:21:03 +02:00
Oleg Isonen 8ed5707a8d chore: Publish plans package (#5690) 0.260.2 2026-04-12 21:44:28 +02:00
Oleg Isonen 8de2fd47f6 fix: CSS shorthand properties not saved when value contains var() (#5688)
Shorthand properties like background: var(--color) were silently dropped
when pasting into the CSS editor because the shorthand expander can't
handle unresolved var() references.

Fix: CSS vars from the current element's computed styles are now
resolved before expanding shorthands. Inline and nested fallbacks
(var(--a, var(--b))) are supported. If a var still can't be resolved, a
toast error is shown instead of silently dropping the property.
2026-04-12 17:14:01 +02:00
Oleg Isonen ce3c82b582 chore: Decouple plans from the builder as much as possible (#5687) 2026-04-12 14:53:23 +02:00
Oleg Isonen 9ae93ac019 fix: Fix/color swatch in dropdown (#5675)
## 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
2026-04-11 19:49:17 +02:00
Oleg Isonen e7860b68a7 fix: feature config parsing for LTD plans (#5681) 0.259.0 2026-04-11 00:37:52 +02:00
Oleg Isonen e7927633e2 fix: Fix image picker filters by accept (#5686) 2026-04-11 00:36:27 +02:00
Oleg Isonen 7120443088 feat: replace accept checkmark icon with Accept button in notifications (#5685) 2026-04-11 00:30:42 +02:00
Oleg Isonen 3b62599ad3 fix: only show daily publish count toast when 10 or fewer remain (#5684)
## 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
2026-04-10 19:21:20 +02:00
Oleg Isonen 8b5fa7ef15 chore: msw testing helpers (#5683)
## 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
2026-04-10 19:11:27 +02:00
Shrek 72a4cecbb2 feat: replace asset option for image assets in asset details (#5676)
## Description

Adds the ability to replace an existing image asset with a new file
directly from the asset details panel, without having to delete and
re-upload manually. Related to [place an image so that it gets replaced
automatically everywhere its being used
#3268](https://github.com/webstudio-is/webstudio/issues/3268)

When clicking the new replace button on an image asset:
1. A file picker opens filtered to image MIME types
2. The new file is uploaded via the existing upload pipeline
3. All references to the old asset (props, styles, page meta: favicon,
social image, marketplace thumbnail) are atomically re-pointed to the
new asset
4. The old asset's filename and description are copied to the new asset
5. The old asset is deleted

A new `ReverseIcon` from the Figma library was added to the icons
package to represent the replace action.

## Steps for reproduction

1. Open the asset manager and select any image asset
2. In the asset details panel, click the new replace icon button next to
the download button
3. Select a new image file from the file picker
4. Expect the asset to be replaced in place - all usages (image props,
background styles, favicon, social image) should now reference the new
file with the original asset's filename preserved

## 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

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

## Before merging

- [x] tested locally and on preview environment (preview dev login:
0000)
- [x] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [x] added tests
- [ ] if any new env variables are added, added them to `.env` file
2026-04-10 19:10:56 +02:00