{
  "name": "frontend",
  "version": "1.0.0",
  "license": "MPL-2.0",
  "author": "Kaleidos INC",
  "private": true,
  "packageManager": "yarn@4.0.2",
  "browserslist": [
    "defaults"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/penpot/penpot"
  },
  "resolutions": {
    "@vitejs/plugin-react": "^4.2.0"
  },
  "scripts": {
    "fmt:clj:check": "cljfmt check --parallel=false src/ test/",
    "fmt:clj": "cljfmt fix --parallel=true src/ test/",
    "test:compile": "clojure -M:dev:shadow-cljs compile test --config-merge '{:autorun false}'",
    "lint:scss": "yarn run prettier -c resources/styles -c src/**/*.scss",
    "lint:scss:fix": "yarn run prettier -c resources/styles -c src/**/*.scss -w",
    "lint:clj": "clj-kondo --parallel --lint src/",
    "test:run": "node target/tests.js",
    "test:watch": "clojure -M:dev:shadow-cljs watch test",
    "test": "yarn run test:compile && yarn run test:run",
    "gulp:watch": "gulp watch",
    "watch": "shadow-cljs watch main",
    "validate-translations": "node ./scripts/validate-translations.js",
    "find-unused-translations": "node ./scripts/find-unused-translations.js",
    "build:clean": "gulp clean:output && gulp clean:dist",
    "build:styles": "gulp build:styles",
    "build:assets": "gulp build:assets",
    "build:copy": "gulp build:copy",
    "storybook:compile": "gulp template:storybook && clojure -M:dev:shadow-cljs compile storybook",
    "storybook:watch": "npm run storybook:compile && concurrently \"clojure -M:dev:shadow-cljs watch storybook\" \"storybook dev -p 6006\"",
    "storybook:build": "npm run storybook:compile && storybook build"
  },
  "devDependencies": {
    "@storybook/addon-essentials": "^7.5.3",
    "@storybook/addon-interactions": "^7.5.3",
    "@storybook/addon-links": "^7.5.3",
    "@storybook/addon-onboarding": "^1.0.8",
    "@storybook/blocks": "^7.5.3",
    "@storybook/react": "^7.5.3",
    "@storybook/react-vite": "^7.5.3",
    "@storybook/testing-library": "^0.2.2",
    "animate.css": "^4.1.1",
    "autoprefixer": "^10.4.15",
    "concurrently": "^8.2.2",
    "gettext-parser": "^7.0.1",
    "gulp": "4.0.2",
    "gulp-cached": "^1.1.1",
    "gulp-concat": "^2.6.1",
    "gulp-gzip": "^1.4.2",
    "gulp-mustache": "^5.0.0",
    "gulp-postcss": "^9.0.0",
    "gulp-rename": "^2.0.0",
    "gulp-sass": "^5.1.0",
    "gulp-sourcemaps": "^3.0.0",
    "gulp-svg-sprite": "^2.0.3",
    "map-stream": "0.0.7",
    "marked": "^7.0.5",
    "mkdirp": "^3.0.1",
    "nodemon": "^3.0.1",
    "npm-run-all": "^4.1.5",
    "postcss": "^8.4.29",
    "postcss-clean": "^1.2.2",
    "prettier": "^3.0.3",
    "prop-types": "^15.8.1",
    "rimraf": "^5.0.1",
    "sass": "^1.66.1",
    "shadow-cljs": "2.26.2",
    "storybook": "^7.5.3",
    "vite": "^5.0.2"
  },
  "dependencies": {
    "date-fns": "^2.30.0",
    "draft-js": "^0.11.7",
    "eventsource-parser": "^1.1.1",
    "highlight.js": "^11.8.0",
    "js-beautify": "^1.14.9",
    "jszip": "^3.10.1",
    "luxon": "^3.4.2",
    "mousetrap": "^1.6.5",
    "opentype.js": "^1.3.4",
    "postcss-modules": "^6.0.0",
    "randomcolor": "^0.6.2",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-virtualized": "^9.22.3",
    "rxjs": "~7.8.1",
    "sax": "^1.2.4",
    "source-map-support": "^0.5.21",
    "tdigest": "^0.1.2",
    "ua-parser-js": "^1.0.32",
    "xregexp": "^5.1.1"
  }
}
