Files
webstudio/apps/builder/package.json
T
Bogdan Chadkin d7460d8354 feat: add basic code editor (#2547)
Ref https://github.com/webstudio-is/webstudio/issues/2532

Here added code editor with variables completion support for bindings
UI. Simple textarea would not work because same names can be used for
different variables
to support seamless dnd for user. `$` is used to trigger completion, in
the future can be replaced with tab or something like this. Current
implementation is mostly a copy paste from lexical playground.

<img width="536" alt="image"
src="https://github.com/webstudio-is/webstudio/assets/5635476/c33ebb71-85d8-41b3-8151-72eccae76129">

To test try CodeEditor component in storybook

## Use case

1. Our variables can have the same names for easier copy-pastability
To address specific variable they should be chosen from available list.

2. renaming variable should rename it everywhere to not break bindings.
So variables behave as symbol in text editor and removed completely on
backspace.
2023-11-02 01:02:17 +04:00

142 lines
4.9 KiB
JSON

{
"name": "@webstudio-is/builder",
"version": "0.111.0",
"private": true,
"description": "Webstudio Builder UI as a service",
"scripts": {
"prebuild": "pnpm remix --version",
"build": "remix build",
"start": "remix-serve build",
"start-local": "NODE_OPTIONS='-r dotenv/config' remix-serve build",
"dev": "remix dev",
"typecheck": "tsc --noEmit --emitDeclarationOnly false",
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
"checks": "pnpm typecheck && pnpm test",
"storybook:dev": "storybook dev -p 6006",
"storybook:build": "storybook build",
"ci:migrate": "migrations migrate --force",
"middleware:link": "pnpx vercel link",
"middleware:env": "pnpx vercel env pull --environment=preview ./.env.preview",
"middleware:dev": "DOTENV_CONFIG_PATH=.env.preview tsx watch -r dotenv/config ./middleware.js"
},
"dependencies": {
"@floating-ui/dom": "^1.5.3",
"@fontsource-variable/inter": "^5.0.13",
"@fontsource-variable/manrope": "^5.0.15",
"@fontsource/roboto-mono": "^5.0.13",
"@lexical/headless": "^0.12.2",
"@lexical/html": "^0.12.2",
"@lexical/link": "^0.12.2",
"@lexical/react": "^0.12.2",
"@lexical/selection": "^0.12.2",
"@lexical/utils": "^0.12.2",
"@nanostores/react": "^0.7.1",
"@radix-ui/react-select": "^2.0.0",
"@radix-ui/react-tooltip": "^1.0.7",
"@react-aria/interactions": "^3.19.0",
"@react-aria/utils": "^3.21.0",
"@remix-run/cloudflare": "^1.19.2",
"@remix-run/node": "^1.19.2",
"@remix-run/react": "^1.19.2",
"@remix-run/serve": "^1.19.2",
"@sentry/remix": "^7.47.0",
"@sentry/types": "7.47.0",
"@trpc/server": "^10.38.1",
"@upstash/ratelimit": "^0.4.4",
"@vercel/edge": "^1.1.0",
"@vercel/kv": "^0.2.3",
"@vercel/remix": "^1.19.2",
"@webstudio-is/ai": "workspace:*",
"@webstudio-is/asset-uploader": "workspace:*",
"@webstudio-is/authorization-token": "workspace:*",
"@webstudio-is/css-data": "workspace:*",
"@webstudio-is/css-engine": "workspace:*",
"@webstudio-is/dashboard": "workspace:*",
"@webstudio-is/design-system": "workspace:*",
"@webstudio-is/domain": "workspace:*",
"@webstudio-is/error-utils": "workspace:*",
"@webstudio-is/feature-flags": "workspace:*",
"@webstudio-is/fonts": "workspace:*",
"@webstudio-is/http-client": "workspace:*",
"@webstudio-is/icons": "workspace:*",
"@webstudio-is/image": "workspace:*",
"@webstudio-is/jsx-utils": "workspace:*",
"@webstudio-is/prisma-client": "workspace:*",
"@webstudio-is/project": "workspace:*",
"@webstudio-is/project-build": "workspace:*",
"@webstudio-is/react-sdk": "workspace:*",
"@webstudio-is/sdk": "workspace:*",
"@webstudio-is/sdk-components-react": "workspace:*",
"@webstudio-is/sdk-components-react-radix": "workspace:*",
"@webstudio-is/sdk-components-react-remix": "workspace:*",
"@webstudio-is/trpc-interface": "workspace:*",
"change-case": "^5.0.2",
"colord": "^2.9.3",
"date-fns": "^2.30.0",
"debug": "^4.3.4",
"detect-font": "^0.1.5",
"downshift": "^6.1.7",
"hono": "^3.7.3",
"hyphenate-style-name": "^1.0.4",
"immer": "^10.0.3",
"immerhin": "^0.9.0",
"jose": "^4.11.2",
"lexical": "^0.12.2",
"match-sorter": "^6.3.1",
"mdast-util-from-markdown": "^2.0.0",
"mdast-util-gfm": "^3.0.0",
"memoize-one": "^6.0.0",
"micromark-extension-gfm": "^3.0.0",
"nanoevents": "^8.0.0",
"nanoid": "^5.0.1",
"nanostores": "^0.9.3",
"node-fetch": "^3.3.1",
"pretty-bytes": "^6.1.1",
"prismjs": "^1.29.0",
"react": "^18.2.0",
"react-color": "^2.19.3",
"react-dom": "^18.2.0",
"react-hotkeys-hook": "^4.4.1",
"react-script-hook": "^1.7.2",
"react-use": "^17.3.2",
"remix-auth": "^3.2.2",
"remix-auth-form": "^1.1.2",
"remix-auth-github": "^1.1.1",
"remix-auth-google": "^1.1.0",
"remix-island": "^0.1.2",
"shallow-equal": "^3.1.0",
"slugify": "^1.6.6",
"strip-indent": "^4.0.0",
"title-case": "^4.1.0",
"untruncate-json": "^0.0.1",
"use-debounce": "^9.0.4",
"uuid": "^9.0.0",
"warn-once": "^0.1.1",
"zod": "^3.21.4"
},
"devDependencies": {
"@hono/node-server": "^1.2.0",
"@jest/globals": "^29.7.0",
"@remix-run/dev": "^1.19.2",
"@storybook/react": "^7.4.0",
"@testing-library/react-hooks": "^8.0.1",
"@types/hyphenate-style-name": "^1.0.0",
"@types/lodash.debounce": "^4.0.6",
"@types/prismjs": "^1.26.0",
"@types/react": "^18.2.21",
"@types/react-color": "^3.0.6",
"@types/react-dom": "^18.2.7",
"@types/uuid": "^8.3.4",
"@webstudio-is/jest-config": "workspace:*",
"@webstudio-is/storybook-config": "workspace:*",
"@webstudio-is/tsconfig": "workspace:*",
"dotenv": "^16.3.1",
"html-tags": "^3.3.1",
"react-test-renderer": "^18.2.0",
"type-fest": "^4.3.1",
"typescript": "5.2.2"
},
"sideEffects": false,
"license": "AGPL-3.0-or-later"
}