2312 Commits
Author SHA1 Message Date
Ivan Starkov 07af1654e1 build: Release 0.105.0 to npm (#2416)
## Description

Merge after #2415

## 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
2023-10-04 18:35:19 +00:00
Ivan Starkov 8b22708cc7 feat: Switch on viewport-based srcSets for width-defined Images (#2415)
## Description

Previous PR: #2414

Now, by default, we set the width attribute when adding an image. This
change could cause mobile screens to load oversized images—specifically,
width * 2. To mitigate this, we're adopting the viewport width
descriptor for srcSets. This approach ensures optimized image loading on
smaller screens and maintains previous behavior on screens wider than
the image's actual size.

## Steps for reproduction

Add images of various sizes, see srcSet

## 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
2023-10-04 18:35:00 +00:00
Ivan Starkov 86361756df feat: Optimize image loading to prevent layout shifts (#2414)
## Description

Instead of `aspect-ratio` css property set `width` and `heigh` html
attributes for the image and set css property `height` to `fit-content`
to preserve ratio.

This removes all known issues we had with images. 
- No layout shift on published site load
- No layout shift on  published site  and 404
- No small image size jumps during canvas resize

Next PR.

Apply full image optimisation even if width property is set (with some
adjustments).

## Steps for reproduction

Add image, see `width`, `height` html attributes has changed.
See css property `height` has changed to `fit-content`

## 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
2023-10-04 16:39:53 +04:00
Ivan Starkov 75ee53509e fix: Canvas width jump on initial load (#2413)
## Description

Fixes this.

![QuickTime
movie](https://github.com/webstudio-is/webstudio/assets/5077042/255a7c67-c417-4d73-841b-456b2bdf6ffd)

Now on all screens initially rendered canvas width is same.


## Steps for reproduction

Reload project, see canvas not jumping.

## 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
2023-10-04 08:29:08 +00:00
Bogdan Chadkin a379a98c1f refactor: split stores with server synchronization (#2410)
New version of immerhin moved global queue into store instance so we can
stop filtering and just call store.popAll().

Also replaced default store with webstudio own serverSyncStore instance.
Now auto import works much better.
2023-10-03 20:13:57 +04:00
Ivan Starkov 357f35d7a5 feat: Implement Rate Limiting (#2393)
## Description

This PR integrates a rate-limiting mechanism into the app using Vercel's
edge-layer middleware in combination with the Hono framework. This
middleware is written in JS with full JSDoc TypeScript typings.

### Architecture & Strategy
Vercel Middleware: Serves as the front-line defense, running at the edge
for optimal performance.
Hono Framework: For granular control, we utilize Hono middlewares for
applying or skipping rate limits.
Additionally, non-expensive routes benefit from an ephemeral cache to
further optimize performance

### Current Limitations
Due to a dependency on CommonJS, we cannot use TypeScript fully.
Consequently, session configurations are not yet shared across multiple
files. All utility functions are present in a single file for the time
being.


### Logic Breakdown
- Assets: Rate limiting skipped.
- Service Calls: Rate limiting skipped.
- /rest/ai/* Endpoint: Rate limit of 20 requests per 5 minutes,
identified by userId or IP.
- Unauthorized Users: Rate limit of 5 requests per 5 seconds, based
solely on IP.
- Authorized Users: Rate limit of 20 requests per 5 seconds, based on
userId.

### Next Steps
Plan to migrate to ESM for enabling TypeScript support for better
maintainability.
Use multiple regional KV

### Debug endpoint.
[Rate limit debug
endpoint](https://webstudio-builder-kscynssns-webstudio-is.vercel.app/rate-limit-debug)


## 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
2023-10-03 12:16:18 +00:00
Bogdan Chadkin fc7be4433a build: release 0.104 (#2409) 2023-10-03 15:24:28 +04:00
Bogdan Chadkin af35ba937d fix: fix undo/redo (#2408)
Commands meta store introduced in latest changes polutted immerhin
history. Here created separate store for client only synchronization.
2023-10-03 13:48:59 +04:00
Giuseppe ccf0280a20 feat: AI Copywriter (#2314)
## Description

Implement AI copywriter functionality behind feature flag. The final UI is not included in this branch.

The feature consists of:

- a `copywriter` chain to generate the copy with AI
- a /rest/ai/copy endpoint to handle generation requests. The response
is streamed as plain text
- the temporary test UI which is a tab in the right sidebar. 
 
For every selected instance it allows to generate copy for it and its
subtree. A `collectTextInstances` utility creates an array of text nodes
objects with the following shape:

```ts
{
  instanceId: string;
  index: number;
  type: "Heading" | "Paragraph" | "Text";
  text: string; // current text or empty
}
```

The AI responds with an array of these where the text property contains
the generated text. The frontend parses incrementally and updates a
Webstudio instance by `instanceId`.

The `index` is used to replace the proper text node in the
`instance.children` array. When all the children are text nodes these
are merged into a single text node, otherwise the AI would generate
`children.length` copy. We identify this case by setting the `index` to
`-1`.
2023-10-03 10:34:26 +02:00
Ivan Starkov c551d2ad4d build: Release v0.103.0 to npm (#2406)
## 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.example`
and the `builder/env-check.js` if mandatory
2023-10-02 19:07:59 +00:00
Bogdan Chadkin 40deaedd7a refactor: migrate instances to commands (#2397)
Here migrated instances shortcuts like delete, duplicate and edit label
to commands.

Added two more options disableHotkeyOnContentEditable and
disableHotkeyOnFormTags to not break builtin shortcuts.
2023-10-02 21:41:13 +04:00
Bogdan Chadkin ea297d51d9 refactor: migrate breakpoints to commands (#2395)
Moved breakpoints menu view state into nanostore.
Added open breakpoints menu and select breakpoint commands.
2023-09-30 21:01:30 +04:00
Bogdan Chadkin 92e6dbd118 refactor: move text editing into commands (#2394)
Here fixed two-way synchronization of commands between builder and
canvas. Added flag to not share hotkey with other apps.

Added first two commands specific to canvas: editInstanceText and
escapeSelection. Builder is able to reuse commands by specifying inn
"externalCommands" which basically extends the union of commands.
2023-09-30 14:13:10 +04:00
Bogdan Chadkin 743d2f1842 refactor: add commands emitter (#2389)
Added new commands emitter utility to manage hotkeys across plugins and
separate a lot of logic from canvas.

Here migrated only togglePreview as an example.

Later we can build commands panel and hotkeys overrides on top of this
utility.
2023-09-29 20:47:25 +04:00
Bogdan Chadkin 5482ec414a perf: drop internal data from generated sites (#2362)
Internal data structures like instances, props, data sources, assets and
pages no longer necessary in generated sites. Nanostores not longer used
to store them.

Now we have less dependencies and smaller runtime.
2023-09-29 16:22:09 +04:00
Jaya Krishna Namburu 35dab38dc0 chore: remove radix components flag (#2384)
## Description

Removes feature flag for radix elements in the editor.

## Code Review

- [ ] hi @TrySound , I need you to do
  - detailed review (read every line)
2023-09-27 19:44:25 +02:00
Jaya Krishna Namburu 3c8c40a24d build: Release v0.102.0 to npm (#2382)
## Description

Releasing `0.102.0` to npm.

## Code Review

- [ ] hi @kof, I need you to do
  - detailed review (read every line)
2023-09-26 19:45:51 +02:00
Jaya Krishna Namburu f22e0105aa chore: Add netlify deploy command list in cli and in export tab (#2380)
## Description

Adds the `netlify` deployment commands sequence. Tested one by one,
seems to be the best flow i can come by. Would like to validate on
someone else too.


## 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
2023-09-26 19:12:12 +02:00
Jaya Krishna NamburuandOleg Isonen 2bb67ba9a1 refactor: Update export dialog for deployments (#2377)
## Description

fixes #2372 

Updates the export dialog with the new deployment target changes.

## Code Review

- [x] hi @kof, I need you to do
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [x] made a self-review

---------

Co-authored-by: Oleg Isonen <oleg008@gmail.com>
2023-09-26 15:54:25 +02:00
Ivan Starkov a64ce7295b build: Release v0.101.0 to npm (#2373)
## 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.example`
and the `builder/env-check.js` if mandatory
2023-09-26 12:00:17 +03:00
Bogdan Chadkin b6e8bddd38 refactor: drop react wrappers from dnd store (#2368)
Similar to https://github.com/webstudio-is/webstudio/pull/2365

Here migrated drag and drop store away from react wrapper.
2023-09-25 18:37:38 +04:00
Giuseppe 03b2f369dc feat: Add AI Panel in Sidabar (#2367)
## Description

Adds basic logic to display AI features in the right sidebar. This is
under feature flag and disabled in prod.
2023-09-25 16:33:52 +02:00
Bogdan Chadkin 4928661d9a refactor: drop react wrappers from auth stores (#2366)
Similar to https://github.com/webstudio-is/webstudio/pull/2365

Here migrated auth permit and auth token to direct access and renamed
them according to new convention.
2023-09-25 18:12:11 +04:00
Bogdan Chadkin 63f597225b refactor: drop react wrapper from preview mode store (#2365)
Nanostore react wrappers in many cases introduce additional renders
because of subscription even when only store.set is used. Searching for
references become complicated because we have both direct store access
and react wrapper.

Here migrated to use direct store access for preview mode store and
renamed it to $previewMode according to new convention.
2023-09-25 17:11:31 +04:00
Bogdan Chadkin 58521e0528 refactor: drop store initial value setters (#2364)
These functions are unnecessary boilerplate. Having single useMount in
builder root give us better understanding of set logic and allow to
easily find other store references.
2023-09-25 16:44:12 +04:00
Bogdan Chadkin 22a1067ed6 refactor: move props logic to canvas (#2361)
Moved canvas props logic from react-sdk to builder. Added new context to
pass props store, not global because depends on params.
2023-09-25 14:17:40 +04:00
Giuseppe 61c7960d3c feat: AI Package (#2307)
This PR introduces the baseline `@webstudio-is/ai` package which
includes:

1. A LLM Abstraction (types) for messages format to make requests to a
model
2. An implementation of the above that uses the OpenAI chat completion
endpoint
3. A common interface for chains. Chains are regular async functions
that can execute an arbitrary number of steps, including calling a LLM
via a model client.

The idea is that a builder API route can use any of these chains to
perform a task that requires AI. For example generate text copy, images,
a theme etc.
2023-09-25 10:59:44 +02:00
Bogdan Chadkin d25e97fe65 perf: generate pages paths (#2360)
Here generated a list of pages paths. It is used in link component to
switch to remix link internally when the link is app route.

Providing whole pages list can bloat runtime when there are many pages
or when there are many seo data so having single page per route should
be enough.

The list is always empty in builder because links are managed with
global interceptor. Ideally frameworks should uses navigation api and
distinct routes from other paths so we would not need to generate
anything.
2023-09-25 12:20:08 +04:00
Bogdan Chadkin 5f93ecb228 perf: generate page prop for links (#2357)
Moved links resolve into props normalizing which is called for whole
project before rendering converting page prop into string.

Remix links now check only if provided path matches any page. Ideally it
should be handled with navigation api to remove all complexity from
links components.

This will let us stop rendering props and assets data in generated
pages.

Also fixed links with hashes.
2023-09-24 20:07:15 +04:00
Oleg Isonen 62cfcace4b fix: Stop scaling instance labels (#2325)
Closes https://github.com/webstudio-is/webstudio/issues/1990

## Description

We were scaling instance labels along with instaces

## Steps for reproduction

1. select instance
2. resize canvas to scale it up and down
3. labels get smaller, but should stay same size while instance scales
4. outline position should stay correct

## 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
2023-09-21 21:52:08 +02:00
Ivan Starkov ad55a96fcd fix: Prevent crash on clicking links within sheet component (#2351)
## Description

Usually React handlers are processed bedore any document event
listeners. In out case for a reason I don't know we had that our
handlers were executed before React but not inside Dialog.

capture flag solves the issue.

closes #2290

## 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
2023-09-21 17:49:42 +03:00
Ivan Starkov 5518303c74 fix: Resolve inconsistencies between database and session (#2350)
## Description

This PR addresses an issue where inconsistencies between the database
and session were causing crashes on every page of the application.

## 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
2023-09-21 15:05:12 +03:00
Bogdan Chadkin fb5414f93d build: use webstudio export condition for tools (#2347)
This fixes the issue with eventsource-parser package having source
export condition with different setup.

Now everywhere "webstudio" is used to reference our sources.
2023-09-20 22:14:34 +04:00
Ivan Starkov 4ff194d8b3 style: Change label at delete project dialog (#2342)
## Description

closes #2335


## 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
2023-09-20 19:30:26 +03:00
Ivan Starkov 1e8866f80d fix: Project not opening on outdated browsers (#2343)
## Description

closes #2239

:has selector was used for optimisation purposes only 

No we leave optimisation only if selector is supported, and use body
element if not.

## 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
2023-09-20 17:34:09 +03:00
Bogdan Chadkin 2fab05137f fix: prevent error when insert components (#2345)
This fixes the issue with computing data sources logic.
insertTemplateData first calls propsStore.set and then
dataSourceStore.set which triggers computing 2 times and first time prop
refers to not existing data source.

Here fixed by setting data sources first and then props.
2023-09-20 18:27:34 +04:00
Ivan Starkov fffc332076 [Misc] Npm Libraries Update 0.100.0 (#2338)
## Description

Npm Libraries Update 0.100.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
2023-09-19 15:14:10 +03:00
Oleg Isonen 20572ead86 Preview on canvas when style panel select value is highlighted (#2328)
https://github.com/webstudio-is/webstudio/issues/2324



https://github.com/webstudio-is/webstudio/assets/52824/7489689f-92bb-4cd5-888b-748bcae2369c



## Description

With this PR all select controls get a preivew when user hovers with the
mouse or uses arrow keys.
We use select control in:
- position
- blend mode
- font-weight
- background size
- many others

In many cases preview won't be visible because cursor doesn't change
unless you actually have mouse over that element

## Steps for reproduction

1. hover over position value
2. when mouse out preview should be gone
3. arrow keys do the same
4. if value wasn't applied and select box closed - preview should reset

## 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
2023-09-18 21:36:36 +02:00
Ivan Starkov 262328694d Fix Dashboard Failure Due to Tooltip (#2331)
## Description

Now works

<img width="524" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5077042/7e5acfb3-3f3d-497f-86ee-b86a5aa47af0">

## 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
2023-09-18 14:55:49 +03:00
Ivan Starkov b538b74ef2 Enable CLI Usage in CI Environment (#2321)
## Description

- Allow overriding default templates with custom external or internal
ones.
- Ensure exact dependencies, e.g., workspace:* instead of workspace:^,
to address beta release issues.
- Enable passing buildId, authToken, and origin via flags during sync.
- Rename "host" to "origin" in the CLI.

Most code is custom template.

- [x] - Tested at SaaS

## 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
2023-09-18 14:54:14 +03:00
Bogdan Chadkin 72c6b286ac Fix remix watcher (#2327)
Need to use slightly different glob for watching packages. `**` means
anything between slashes and `**.js` in the end looks like `**/.js`
2023-09-17 16:50:17 +04:00
Bogdan Chadkin 75f72eeccf Drop legacy data sources from builder (#2319)
Here removed all left usages of previous data sources implementation and
removed no longer used expression utilities.
2023-09-16 14:17:10 +04:00
Bogdan Chadkin 8f00d5af2e Generate human readable data sources and actions (#2312)
Scope utility give us a way to generate more readable data sources and
actions. Here variables, expressions and actions are output into the
same map.

In the future same utility can be used to produce framework specific
stores like React.useState.

See fixtures for example.
2023-09-14 20:13:36 +04:00
Ivan Starkov 145f1c0b69 NPM Update 0.99.0 (#2310)
## Description

packages update

## 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
2023-09-13 09:08:36 +03:00
Oleg Isonen c5493c557d Add a link to CLI docs in the export dialog (#2305)
## Description

Added a link to the CLI docs
<img width="361" alt="Screenshot 2023-09-12 at 16 49 15"
src="https://github.com/webstudio-is/webstudio/assets/52824/1d12e25f-a523-46e4-9887-54c274216ec5">
2023-09-12 17:24:13 +02:00
Bogdan Chadkin 36f7714df8 Release 0.98 (#2304) 2023-09-12 15:29:54 +04:00
Bogdan Chadkin 3bc2adf616 Limit images formats to upload (#2302)
Cloudflare supports only jpeg, png, gif, webp and svg as input. We
should forbid any other format.
2023-09-12 14:35:34 +04:00
Ivan Starkov a46367357c 0.97.0 release (#2298)
## Description

0.97.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
2023-09-11 21:21:55 +03:00
Ivan Starkov 53c97d8d18 Vercel image optimisation support (#2297)
## Description

CLI support of vercel image optimisation


## 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
2023-09-11 21:03:02 +03:00
Bogdan Chadkin 4c7cb84629 Release 0.96 (#2293) 2023-09-09 21:14:37 +04:00