Commit Graph
27 Commits
Author SHA1 Message Date
Oleg Isonen 7f1af26ad8 fix: fix webflow html embed preset styles (#3791)
Fixes
https://discord.com/channels/955905230107738152/1265688229529784320

wf embed is display block by default, but we have nothing that would set
this because our own preset sets display to content

## Description

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

## Steps for reproduction

1 copy code embed/html embed from webflow
2.paste it and see the display is block, not contents

## 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` file
2024-07-25 21:26:11 +02:00
Oleg Isonen 30c7600143 fix: Skip empty combo class when pasting from webflow (#3755)
## Description

Skipping unnecessary combo class

## Steps for reproduction

1. in webflow, add element with class .a, define color
2. add element with class .b, define font size
3. add element with class .a.b  don't define anything
4. paste .a.b into webstudio - see .a .b tokens are added, but no .a.b

## 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` file
2024-07-19 13:57:28 +02:00
Bogdan Chadkin 308acbbaf7 experimental: add transparent color when paste bg clip from webflow (#3739)
Here fixed the issue with pasting gradients from webflow. Their css
engine output -webkit-fill-color: transparent along with background-clip
property. This is very implicit behavior from css point of view.

Here I instead added logic to add color: transparent from paste from
webflow overriding previously set color. It will not work in 100% but
should cover relume templates.
2024-07-16 17:44:11 +02:00
Oleg Isonen 531dc6a4e8 experimental: Pasting from webflow 15 (#3733)
## 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:
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` file
2024-07-16 14:09:52 +02:00
Bogdan Chadkin dc78b53c13 experimental: fix local styles when copy from webflow (#3735)
Fixed the issue with pasting components with local styles for exmaple
quick stack.
2024-07-16 00:21:28 +02:00
Oleg Isonen 429c406d2b experimental: More comboclass fixes (#3716)
## Description

Source order specificity in webflow is completely unpredictable. I am
just trying to do a wild guess based on testing with relume what would
be the right order.

## 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` file
2024-07-12 12:48:24 +02:00
Oleg Isonen 4c60e957ff experimental: Combo classes for wf copy paste (#3713)
## Description

When webflow has a combo class out of .a.b.c we need to check .a, .b,
.c, .a.b, .a.c etc all combinations because in webflow they can apply as
it does with regular css

## 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` file
2024-07-12 01:18:50 +02:00
Bogdan Chadkin 4abb5ce83e experimental: support webflow custom properties (#3706)
Webflow wraps its custom properties (which are not actually custom
properties) with `@raw<|value|>` which our parser just skips because
unable to parse.

Here simply stripped with regex all such wrappers.
2024-07-11 01:04:29 +02:00
Ivan StarkovandOleg Isonen 6e41286635 experimental: Add Desktop Webflow Navbar support (#3665)
## Description

This 
<img width="856" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/f8894380-0dbb-45c7-a1a5-410dbcb01fc8">

To this
<img width="1049" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/bf618095-08be-4c6f-850f-56354e74e738">

## Known issues:

### All
- w-nav-link preset colors do not match

### Mobile
Mobile burger is not shown 
- w-nav-button does not have breakpoint style i.e. display: none->block
for mobile
- w-nav-menu does not have breakpoint related style i.e display: block
-> none for mobile
- we don't have widget icons like burger i.e. `"data": { "widget": {
"type": "icon", "icon": "nav-menu" } }` _having breakpoint issues and
that user in any case need to use Sheet on mobile this is ok_



## Steps for reproduction

Copypaste Navbar from webflow 2 webstudio

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

---------

Co-authored-by: Oleg Isonen <oleg008@gmail.com>
2024-07-10 18:36:01 +03:00
Oleg Isonen fb9b6b3bd7 experimental: Only add a breakpoint when there are styles on that breakpoint (#3701)
## Description

Instead of adding all wf breakpoints at once, we now will add them
incrementally if there are styles on a particular breakpoint

## 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` file
2024-07-10 11:59:31 +02:00
Oleg Isonen 915de5c46d experimental: Paste from webflow 14 (#3687)
## Description

- support combo classes

## Steps for reproduction

1. create project A, create class .a and set some style A
2. copy element with class .a 
3. create a project B with also class .a, set some other style B
4. create a class .b, set some style C
5. create a combo class .a.b, set some style D
6. copy first project element with class .a into ws
7. copy second project element with combo class .a.b into webstudio
8. expect the element to have 3 tokens: `.a .b .a.b`, expect .a to have
style A, .b to have style B and .a.b to have style D defined on them

## 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` file
2024-07-09 11:43:31 +02:00
Bogdan Chadkin 0e457fe0ad experimental: support webflow local styles (#3695)
QuickStack component use local styles or instance style overrides. Here
added converted it to webflow style format and parsed the same way as
classes.
2024-07-07 17:58:26 +03:00
Bogdan Chadkin f988e2b918 experimental: support breakpoints in css parser (#3685)
Ref https://github.com/webstudio-is/webstudio/issues/2647

Here added additional `breakpoint` property to parsed style declaration.
It basically a sanitized media query like `(min-width:768px)` which is
easy to parse. Styles inside unsupported conditions are just stripped
away.
2024-07-06 11:13:45 +03:00
Bogdan Chadkin e19fe92f15 refactor: parse styles into flat list (#3666)
Ref https://github.com/webstudio-is/webstudio/issues/2647

We need to support more grouping properties in parsed css for example
breakpoints would require additional nesting.

Here I took slightly different approach and moved all styles into single
array with additional `selector` property.

Now we can easily support parsing styles without selectors and parsing
styles without breakpoints. And optionally we can always use
`Map.groupBy(styles, styleDecl => styleDecl.selector)` and the same
later by breakpoint.
2024-07-05 01:14:20 +03:00
Oleg Isonen 0bb0fa4aa5 experimental: Paste from webflow 13 (#3655)
## Description

- support visibility setting

## 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` file
2024-07-01 20:06:41 +02:00
Oleg Isonen 3cf3da0f77 experimental: Copy from webflow 12 (#3642)
## Description

- fix all types of links (wf doesn't use attr for those, completely
custom data structure)
- update presets, add tons of missing presets

## 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` file
2024-06-29 12:11:37 +02:00
Ivan Starkov dd7447a0b6 experimental: Upload Webflow background-image assets on copy-paste (#3638)
## Description

Upload backgrounds on webflow paste.

## Steps for reproduction

Create backgrounds with images at webflow
paste into the new project.

Example (everything is pasted from webflow in a single copy-paste)

https://upload-style-assets.development.webstudio.is/builder/dc6eae9d-dae6-4ba8-ade2-abd86f733d6a

Layers use assets
<img width="495" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/aed96a08-f369-48b4-84ec-3e935c293510">


## 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` file
2024-06-28 18:44:44 +03:00
Ivan Starkov 764ddc6f00 chore: Parse css backgorund support (#3635)
## Description

Add support for background parsing into webstudio layers.
With partial support of webflow copy-pasting.
Main support will be in the next PR.
https `id`s are temporary used instead of real URLs to avoid various
encoding/decoding issues, will be changed in next PR or PRs


## Steps for reproduction

Copy-Paste something like this
<img width="1069" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/caf827db-a6f7-43d6-b19c-4467fa1e3968">

Get this

<img width="286" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/6a59beee-4eea-4f6b-840a-20684e0c0be8">



## 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` file
2024-06-28 08:41:38 +03:00
Oleg Isonen 853c0f7d48 experimental: Paste from webflow 11 (#3623)
## Description

- support pseudo states
- support pseudo elements

## 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` file
2024-06-27 14:35:14 +02:00
Ivan Starkov 5e94a30931 fix: Deduplicate styles on data paste from Webflow (#3622)
## Description

ref #2647

We already had logic to handle style sources on paste: if the
destination has the same styleSource.id as the source, we do nothing.

Now, we add deterministic ID generation for Webflow classes. This,
combined with the existing logic, achieves the desired behavior.


## Steps for reproduction

Paste anything from single webflow project multiple times. See no
duplicated.

## 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` file
2024-06-26 22:19:41 +03:00
Oleg Isonen 25d72a11ff experimental: Paste from webflow 9 (#3602)
## Description

- updated mdn build
- fixed font-width
- render unset instead of var()
- skip properties with empty values
- temp rendering input instead of select
- remove the flag
- unprefix -webkit-appearance

## 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` file
2024-06-22 23:23:29 +02:00
Oleg Isonen f8635a6691 experimental: Paste from webflow 8 (#3572)
## Description

- adds breakpoints when they are missing
- adds some form components
- rewrites tests to jsx

https://share.descript.com/view/yOz2JeAdrXW

## 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` file
2024-06-21 18:10:28 +02:00
Oleg Isonen 3827146b4f experimental: Paste from webflow 7 (#3549)
Ref https://github.com/webstudio-is/webstudio/issues/2647

## Description

- show a toast when skipping unsupported elements
- handle shorthands
- RichText test and link inside rich text fixes

## 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` file
2024-06-14 13:52:59 +02:00
Oleg Isonen 8de6c4aee4 experimental: Paste from webflow 6 (#3519)
## Description

1. add rendering states e.g. :hover
2. keep the original rules order
3. remove overwritten properties
4. code embed 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` file
2024-06-12 10:51:39 +02:00
Oleg Isonen 2e1f6a35f1 experimental: Paste from webflow 5 (#3509)
## Description

When parsing webflow presets:
- skip selectors with combinators
- support states

## 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` file
2024-06-07 17:04:23 +02:00
Oleg Isonen 4aef12cd7a experimental: Paste from webflow 4 (#3491)
## Description

- webflow css preset

## 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` file
2024-06-05 17:14:23 +02:00
Oleg Isonen 04b878bf41 experimental: Paste from webflow 3 (#3482)
## Description

Combo classes, Custom attributes, Grid, Columns, Image

## 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` file
2024-06-04 01:39:29 +02:00