4436 Commits
Author SHA1 Message Date
Ivan Starkov 24d161e000 build: Release 0.126.0 (#2795)
## Description

Npm 0.126.0 Release

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
0.126.0
2024-01-22 09:10:34 +03:00
Bogdan Chadkin 3fb1368023 feat: support copy pasting resources (#2796)
Closes https://github.com/webstudio-is/webstudio/issues/2532

Last one
2024-01-22 13:09:13 +07:00
Oleg Isonen c822151098 feat: Collapsible folders & nested deletion (#2776)
Ref  https://github.com/webstudio-is/webstudio/issues/404
## Description

- collapsible folders
- highlight the nested folder in pages list
- nested deletion of folders and pages
- page selector for link href now has pages in groups by folder

## Steps for reproduction

### Collapsing
1. can collapse/expand folders by clicking on arrow
2. can click on the item itself to collapse/expand
3. can use option key to apply to all children
4. can close pages panel and return to the previous state when opening
again, preserving the collapsing state

### Nested deletion
1. create a nested folder pages
2. delete the top folder
3. confirm 
4. all pages and folders should be cleanly deleted


## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-21 22:45:38 +01:00
Oleg IsonenandShyanRoyChoudhury ce2a5ebc52 feat: Outline Section UX improvement (#2789)
## Description

1. What is this PR about (link the issue and add a short description)
The PR has 2 improvements mentioned in the issue #2602 :
 * Ordered the Outline section after the Effects section
 * Hides all properties except Style until a Style value is selected
 
## Steps for reproduction

1. Login and create a project.
2. On the style section on the right side of the screen. scroll down to
find the updates.
3.  Outline section has shifted below Effects section.
4. And only on selecting the other toggles on style property other than
none, renders the colour, width and offset properties.


## Code Review

- [x] 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:
d252)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory

---------

Co-authored-by: ShyanRoyChoudhury <shayan.roy31@gmail.com>
2024-01-21 17:22:31 +01:00
Bogdan Chadkin eb5f9809ba fix: insert copy on reparent (#2787)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here replaced reparent implementation with copy/paste logic to support
changing scope of variables.
2024-01-21 21:31:39 +07:00
Oleg Isonen 7ebe625d82 feat: Add titles in the binidngs panel (#2786)
## Description

Adding titles for variables and expression editor for clarity and
tooltips

## Steps for reproduction

1. add a binding
2. see titles and tooltips

<img width="258" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/52824/12332e2e-4b55-4d89-8915-cb67055dddc9">

<img width="315" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/52824/e1bc3a6e-897a-405a-8541-d436b1533390">

<img width="288" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/52824/7c9e3f19-986f-44fe-a51b-092f9dd9933a">

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-21 14:04:49 +01:00
Bogdan Chadkin 0c9ee38235 feat: support copy pasting text content bindings (#2788)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Extended existing tests and logic to support expressions in instance
children beside prop expressions.
2024-01-21 17:46:19 +07:00
Bogdan Chadkin 1e7ef26dc9 refactor: make inserting fragments copy composable (#2783)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here refactored insertInstancesSliceCopy to accept webstudio data
instead of creating transaction.

This let us avoid hacky callbacks in duplicate instance and duplicate
page functionalities.

Note: review with hidden whitespaces
2024-01-21 12:15:08 +07:00
Bogdan Chadkin 7263136d4c refactor: drop boilerplaty parse/serialize (#2784)
Dropped previously deprecated parse/serialize utilities.
2024-01-21 11:42:15 +07:00
Bogdan Chadkin a84320666d refactor: make delete instance composable (#2781)
Here refactored delete instance to accept and mutate webstudio data
instead of accessing data stores.
Now we can avoid double transaction when delete pages.

Note: review with hidden whitespaces
2024-01-19 22:55:10 +07:00
Bogdan Chadkin f620e2e1f2 refactor: generalize transferrable fragments (#2780)
Here added two new types

WebstudioFragment - reusable fragment of webstudio data which can be
generated (markdown, embed template), transferred (copied or stored in
marketplace) and inserted.

WebstudioData - all available normalized data to allow composing
multiple operations within single transaction like delete instance and
then insert into other part of the page.
2024-01-19 22:24:59 +07:00
Bogdan Chadkin a76c29fc05 feat: inline variables outside current component/slot (#2778)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Important constrain on the way to custom components to not use data
sources defined in other components when copy paste.

## Steps for reproduction

1. Test covers it
2024-01-18 23:37:50 +07:00
Bogdan Chadkin 8d073e598d refactor: pass resources to page with context (#2777)
Resources should not be part of component props.
Drilling resources to nested custom components
would be more complex so using context can
simplify this part and prepare for rendering
slots as separate components.
2024-01-18 23:33:54 +07:00
Oleg Isonen 8e2e07ea23 feat: Allow selecting a nested path for link href (#2773)
Ref https://github.com/webstudio-is/webstudio/issues/404

## Description

- can select a nested path for link pages
- can click in preview to get to the page

## Steps for reproduction

1. click button
2. expect xyz

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-17 19:02:41 +01:00
Bogdan Chadkin db94f021a6 fix: support mouse select in expression autocomplete (#2772)
Ref https://github.com/webstudio-is/webstudio/issues/2532
2024-01-18 00:42:43 +07:00
Bogdan Chadkin ee76240941 fix: remove drag handle from variables and bindings (#2771)
Ref https://github.com/webstudio-is/webstudio/issues/2532
2024-01-17 18:56:01 +07:00
Bogdan Chadkin d83b911f48 fix: save latest value when close settings panel (#2770)
Unmount got stale saved value because effect is run without
dependencies.
2024-01-17 18:43:16 +07:00
Bogdan Chadkin 0a5c7a7a54 feat: hide resource variables as paid feature (#2760)
Ref https://github.com/webstudio-is/webstudio/issues/2532

<img width="284" alt="Screenshot 2024-01-14 at 20 42 44"
src="https://github.com/webstudio-is/webstudio/assets/5635476/ae6996f6-8864-47bd-87ce-29253af99e5d">
2024-01-17 11:22:18 +07:00
Bogdan Chadkin a21b5eb984 feat: support bound and overwritten binding button variants (#2769)
Ref https://github.com/webstudio-is/webstudio/issues/2532

- added blue "bound" binding button
- added pink "overwritten" binding button
- added tooltip to reset overwriten binding

<img width="239" alt="Screenshot 2024-01-16 at 22 20 11"
src="https://github.com/webstudio-is/webstudio/assets/5635476/e5c2b5df-470c-44af-b759-da905f8ec361">
<img width="279" alt="Screenshot 2024-01-16 at 22 20 05"
src="https://github.com/webstudio-is/webstudio/assets/5635476/a5bd12e2-7e68-4068-bb20-c77ddce5f900">
2024-01-17 11:12:13 +07:00
Oleg Isonen 65d0df8213 feat: Nested routes compiler (#2766)
Ref https://github.com/webstudio-is/webstudio/issues/404

## Description

- generate remix app with nested routes

## Steps for reproduction

1. create nested routes 
2.  generate app using cli

## Code Review

- [ ] hi @istarkov , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-16 17:03:54 +01:00
Oleg Isonen febb02e2df feat: Folders select in pages (#2763)
Ref  https://github.com/webstudio-is/webstudio/issues/404
## Description

- Folders select in pages
- Path rendered in page contains all slugs from all parent folders

## Steps for reproduction

1. open page settings
2. select a folder
3. see page was moved to a folder
4. see url preview contains the right folder slugs

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-16 14:12:01 +01:00
Bogdan Chadkin c0702ba10a fix: polish collection component (#2767)
Ref https://github.com/webstudio-is/webstudio/issues/2532

- fixed collection icon color
- allow to specify expression in embed template children
- tweaked default collection template
- allow to specify variable aliases in embed template children
- renamed collectionItem variable to Collection Item
- moved collection component to "Data" category
- fix broken canvas when bind object to text content
- add better tooltips why cannot remove parameter and used variables
2024-01-16 15:13:18 +07:00
Oleg Isonen 55a836f4e5 fix: Default link always underline (#2764)
## Description

Failed to check after last changes that the default link used most of
the time and it should have underline=always by default, only rare cases
have underline hover or none

## Steps for reproduction

1. export dialog
2. blocking alert

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-15 12:02:34 +01:00
Ivan Starkov 2209b21608 build: Release 0.125.0 (#2761)
## Description

release 0.125.0

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
0.125.0
2024-01-14 18:56:19 +03:00
Ivan Starkov a8918a70d2 feat: Appsumo support (#2759)
## Description

- [x] - Instead of stripe we don't know userId at the moment of
appsumo.activate so make userId nullable
- [x] - Add appsumo log entries to UserProduct view. 

<img width="308" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/e2b4f12f-f57f-401f-b8db-f7334d7b9187">


## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-14 17:14:15 +02:00
Oleg Isonen e057ba1d91 fix: Better error message when user reaches max domains limit (#2758)
## Description

Just message text

## Steps for reproduction

1. add more than 5 domains on a free account

## Code Review

- [ ] hi @TrySound , I need you to do
  - conceptual review (architecture, feature-correctness)


## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-14 12:14:29 +01:00
Bogdan Chadkin a5ed1e99f2 fix: hide page params with cms flag (#2757)
Ref https://github.com/webstudio-is/webstudio/issues/2532

We are launching bindings without page params
which will be part of cms launch.
2024-01-14 17:12:39 +07:00
Bogdan Chadkin 694cfefe33 chore: resync fixtures 2024-01-14 15:52:42 +07:00
Oleg Isonen 5a5382c975 feat: Page folders (#2745)
Ref https://github.com/webstudio-is/webstudio/issues/404

## Description

Implement ablity to organize pages in folders, not a complete
implementation, only:

- Implements data structure for folders
- Allows to create folders and select a parent folder from a folder
- Reparents orphaned pages/folders for the future collaboration mode

## Steps for reproduction

1. open pages
2. add folders
3. nest folders
4. delete folders

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-13 16:39:57 +01:00
Bogdan Chadkin ed188ef215 feat: support binding in text content (#2756)
Ref https://github.com/webstudio-is/webstudio/issues/2532

- added new expression type to instance children
- added binding to text content setting
- prevented deleting variable bound to instance child
- rendered computed child in canvas and preview
- supported expression child in component generator

What's missing

- copy paste support (will add later)

<img width="880" alt="Screenshot 2024-01-13 at 09 59 58"
src="https://github.com/webstudio-is/webstudio/assets/5635476/1275d5b3-420b-4f97-9d72-407ff39932e5">
2024-01-13 16:50:08 +07:00
Jaya Krishna Namburu 93c9defb90 fix: Add source and reset details in tooltips for flex gap (#2752) 2024-01-12 17:01:55 +01:00
Bogdan Chadkin 8fa0d7590f feat: support editing text content in settings panel (#2754)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here added "Text Content" system prop to all elements which allows to
edit plain text content though settings panel.

It will be used to support instance content binding instead of using
HtmlEmbed with code binding.

<img width="879" alt="Screenshot 2024-01-12 at 11 51 39"
src="https://github.com/webstudio-is/webstudio/assets/5635476/d88e1d56-7f6b-4ec1-9ea3-04cd40baa618">
2024-01-12 20:33:08 +07:00
Bogdan Chadkin 2a1d77b0b8 fix: fallback to default value in computed props (#2755)
This fixes the issue with "show" is false by default.
2024-01-12 17:48:58 +07:00
Bogdan Chadkin 427e40dd72 feat: hide variables outside of slots (#2751)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Slots will eventually become components. And components cannot have
direct access to page variables. Here added constraint to hide all
variables outside of slot component.
2024-01-11 16:49:06 +07:00
Bogdan Chadkin f85d7fa4fd feat: delete resources along with variables (#2749)
Ref https://github.com/webstudio-is/webstudio/issues/2532

- fixed deleting when delete in variables section
- fixed deleting when delete instance
2024-01-10 19:23:57 +07:00
Bogdan Chadkin ad233d158d feat: disable reset button for non-expression binding (#2748)
Ref https://github.com/webstudio-is/webstudio/issues/2532

This prevents users from pointless resetting non-expression bindings.

Also fixed text controls style when binding is bound.

<img width="485" alt="Screenshot 2024-01-10 at 16 29 47"
src="https://github.com/webstudio-is/webstudio/assets/5635476/8102a63f-7618-4a93-89a0-494219a8ef0a">
2024-01-10 16:54:32 +07:00
Oleg Isonen b2bf220ed6 chore: Rename all *Store to $store (#2747)
## Description

Pure renaming, nothing else.

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-09 13:32:51 +01:00
Bogdan Chadkin 0070ca41e1 feat: show bindings only on control hover (#2743)
Ref https://github.com/webstudio-is/webstudio/issues/2532

## Steps for reproduction

1. check all prop controls
2. check resource variable
2024-01-09 19:03:10 +07:00
Bogdan Chadkin ab4d5def09 feat: improve variable and binding popovers position (#2740)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here improved position of popovers to stack to the left of current
"context". So binding are placed on the left of settings panel and on
the left of variable popover panel. While variable popover panel is
always placed on the left of settings panel.

<img width="505" alt="Screenshot 2024-01-08 at 14 53 26"
src="https://github.com/webstudio-is/webstudio/assets/5635476/bfb5a46e-f00c-4666-a548-37267da1922b">
<img width="756" alt="Screenshot 2024-01-08 at 14 53 17"
src="https://github.com/webstudio-is/webstudio/assets/5635476/e2544c8b-a51c-4359-897a-e1545a26e767">
2024-01-08 18:15:59 +07:00
Dima Ivashchuk 8749114a89 Update README.md with lost pixel (#2742)
## Description

Add thanks to Lost Pixel section
2024-01-08 11:47:29 +01:00
Ivan Starkov ad6a8da1c9 build: Release 0.124.0 (#2741)
## Description

Npm release

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
0.124.0
2024-01-08 11:20:09 +02:00
Oleg Isonen e7b6c752b7 feat: Add loading lazy/eager to vimeo (#2738)
## Description

When video is off-screen and needs to be autoplayed, you can now put it
to loading=lazy and it won't load until its in viewport.




https://github.com/webstudio-is/webstudio/assets/52824/3fa59ab8-1e19-44b4-969b-3eb99f12fccf


## Steps for reproduction

1. click button
2. expect xyz

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-08 11:19:47 +02:00
Ivan Starkov 672ee9a98a feat: Support atomic CSS on build (#2739)
## Description

Logic was changed only in `prebuild.ts`. All other changes or README or
autogenerated

Integrate atomic CSS support into CLI

The Vercel fixtures project now explicitly sets atomicStyles to true.
Netlify explicitly sets atomicStyles to false.
The custom template doesn't have a default setting, so atomicCss=true is
used."

## Steps for reproduction

See fixtures.

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-08 10:36:09 +02:00
Ivan Starkov 7bffdc0954 feat: Add Publish Settings section to Project settings (#2720)
## Description

<img width="496" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/f49af094-b843-4fb0-b324-90ab0b4dabb1">

## Steps for reproduction

Open Project, See Project Settings

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-08 09:15:29 +02:00
Bogdan Chadkin 4f64676db7 feat: improve variable popover (#2737)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here changed variable popover UI

- removed save/cancel buttons - save is happening on close
- replaced value/resource tabs with type select
- support additional string, number and boolean values
- add validation to value and resource forms

Also added form utilities to manage and compose field validation.
2024-01-07 23:40:48 +07:00
Oleg Isonen 9ed70babce fix: Ensure user can't enter invalid canvas width value in breakpoints editor (#2736)
## Description

User was able to delete the value and get a NaN error Ref
https://github.com/webstudio-is/webstudio/issues/2734

## Steps for reproduction

1. delete the value
2. see the min width rendered

## Code Review

- [ ] hi @TrySound , 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-06 19:12:36 +01:00
Bogdan Chadkin 210a2f40d6 feat: improve binding validation (#2730)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here changed how bindings are validated

- closing with broken expression will show errors and prevent close
- the next close will not block and keep the old valid expression
- close with valid expression invoked saving
- props no longer can change the type of input
- binding button becomes red and gets tooltip when value has invalid
type
- binding popover also shows non-blocking error about type
- each control provides own validation

<img width="465" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5635476/c19cca91-4558-4570-b257-1c10689a1113">
<img width="247" alt="Screenshot 2024-01-05 at 17 13 15"
src="https://github.com/webstudio-is/webstudio/assets/5635476/8702b2f2-1756-4262-924f-83f1d92eb4b4">
2024-01-07 00:59:13 +07:00
Oleg Isonen 4e43e9b2fd fix: blocking alerts accidentally got enabled for everyone (#2731)
## Description

In the last PR I forgot to uncomment the check

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory
2024-01-05 17:41:31 +01:00
ad224732cc feat: Link typography tokens and a new Link component in DS (#2729)
## Description

- Decided to not have separate colors for link, it should just use
regular text colors.
- Added a Link component to the design system, modelled after MUI Link
component

## 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:
5de6)
- [ ] 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.example`
and the `builder/env-check.js` if mandatory

---------

Co-authored-by: Taylor Nowotny <86495896+taylornowotny@users.noreply.github.com>
Co-authored-by: Bot (build-figma-tokens.yml) <bot@localhost>
Co-authored-by: Bogdan Chadkin <trysound@yandex.ru>
2024-01-05 12:51:47 +01:00
Bogdan Chadkin e810ea9b89 feat: switch props to binding popover (#2727)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here finally replaced variables panel with binding popover in all prop
controls.
Additionally did better support of expressions in file and url controls.

The tricky part is managing expressions on control components level
instead of global props panel level which gives us more granular control
of behavior though requires more boilerplate code in each control.

There are still some bugs for example with loosing focus when start
editing expression which I will fix in following validation fix.

## Testing

- check id in Body (string)
- aria-max something in Body (number)
- check "show" in body child (boolean)
- check href in Link (url)
- check src in Image (file)
- check state in Form (radio)
- check aria-autocomplete in body (select)
- check remove binding in resource fields
2024-01-04 12:14:17 +07:00