{
  "name": "@vitalsource/vstui",
  "version": "5.0.2",
  "description": "React components based off the VST Pattern Library",
  "homepage": "https://vitalsource.github.io/vstui",
  "bugs": "https://github.com/vitalsource/vstui/issues",
  "license": "MIT",
  "author": "VitalSource Bookshelf Team",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git+ssh://git@github.com/vitalsource/vstui.git"
  },
  "scripts": {
    "start": "storybook dev -p 3333",
    "watch": "nodemon .storybook/nodemon.js & npm run prettier:watch",
    "build": "rimraf ./build && npm run pull:smartling && npm run build:i18n && npm run build:js && npm run build:copy && npm run build:package-json && echo 'build complete'",
    "build:js": "BABEL_ENV=production VSTUI_VERSION=$npm_package_version babel --out-dir='build' src --ignore /components/,/images/,/style/,/utils.js,*.spec.js && echo 'build:js complete'",
    "build:copy": "copyfiles README.md CHANGELOG.md LICENSE build && echo 'build:copy complete'",
    "build:i18n": "node ./scripts/build-i18n.js && echo 'build:i18n complete'",
    "build:package-json": "node ./scripts/build-package-json.js && echo 'build:package-json complete'",
    "build:storybook": "rimraf ./storybook-static && storybook build && echo 'build:storybook complete'",
    "docs": "npm run docs:api && npm run docs:stories && echo 'docs complete'",
    "docs:api": "rimraf ./docs/api/* && react-docgen src --exclude index.js --exclude componentTheme.js --exclude index.spec.js --exclude Button.spec.js --exclude Card.spec.js --exclude Checkbox.spec.js --exclude CheckboxControl.spec.js --exclude Dialog.spec.js --exclude Filter.spec.js --exclude Form.spec.js --exclude FormGroup.spec.js --exclude FormMessage.spec.js --exclude Icon.spec.js --exclude InputControl.spec.js --exclude Label.spec.js --exclude Link.spec.js --exclude Popover.spec.js --exclude RadioButton.spec.js --exclude Select.spec.js --exclude SelectControl.spec.js --exclude Switch.spec.js --exclude Table.spec.js --exclude TextAreaControl.spec.js --exclude TextField.spec.js --exclude Tooltip.spec.js --exclude FormControlMessage.spec.js --exclude index.js --exclude utils.js --ignore i18n --ignore colors --ignore context --ignore components --ignore icons --ignore propTypes --ignore style --ignore styles --ignore themes --ignore utils --ignore withCommonProps | ./scripts/build-api-docs.js && echo 'docs:api complete'",
    "docs:stories": "rimraf ./stories/docgen/* && react-docgen src --pretty --exclude componentTheme.js --exclude index.spec.js --exclude Button.spec.js --exclude Card.spec.js --exclude Checkbox.spec.js --exclude CheckboxControl.spec.js --exclude Dialog.spec.js --exclude Filter.spec.js --exclude Form.spec.js --exclude FormGroup.spec.js --exclude FormMessage.spec.js --exclude Icon.spec.js --exclude InputControl.spec.js --exclude Label.spec.js --exclude Link.spec.js --exclude Popover.spec.js --exclude RadioButton.spec.js --exclude Select.spec.js --exclude SelectControl.spec.js --exclude Switch.spec.js --exclude Table.spec.js --exclude TextAreaControl.spec.js --exclude TextField.spec.js --exclude Tooltip.spec.js --exclude FormControlMessage.spec.js --exclude index.js --exclude utils.js --ignore i18n --ignore colors --ignore context --ignore components --ignore icons --ignore propTypes --ignore style --ignore styles --ignore themes --ignore utils --ignore withCommonProps | ./scripts/build-stories-docgen.js && echo 'docs:stories complete'",
    "lint": "npm run lint:js && npm run lint:css",
    "lint:fix": "npm run lint:js:fix",
    "lint:js": "eslint ./",
    "lint:js:fix": "eslint --fix ./",
    "lint:css": "stylelint './src/**/*.js'",
    "lint:staged": "lint-staged",
    "prettier:watch": "onchange '**/*.js' -- prettier --write {{changed}}",
    "pull:smartling": "node ./scripts/pull-smartling.js && echo 'pull:smartling complete'",
    "test": "npm run lint && npm run test:jest && npm run test:loki",
    "test:jest": "jest",
    "test:jest:watch": "jest --watch",
    "test:jest:coverage": "jest --coverage",
    "test:loki": "npx storybook build --test && npx loki test --reactUri file:./storybook-static",
    "test:loki:update": "loki update --reactUri file:./storybook-static",
    "deploy:storybook": "npm run build:storybook && gh-pages --dist storybook-static",
    "deploy:storybook:next": "npm run build:storybook && gh-pages --dist storybook-static --dest next",
    "release:message": "echo 'Using np (https://github.com/sindresorhus/np) to handle getting files ready to publish. To work around some bugs in np for the time being, this is installed globally (v2.18.3), and np does not handle publishing to npm.'",
    "release": "npm run release:message && np --no-publish",
    "release:next": "npm run release:message && np --no-publish --any-branch",
    "version": "echo 'Updating the changelog, adding it to the commit, and creating the build folder (this runs after the version is bumped in package.json but before it is committed).' && npm run updatechangelog && git add CHANGELOG.md && npm run build",
    "updatechangelog": "echo 'Moving everything from the Unreleased section in the changelog to a section for the current version.' && node ./scripts/changelog-release.js",
    "postrelease": "echo 'Publishing in GitHub actions.'",
    "postrelease:next": "echo 'Publishing to npm and updating storybook on the github project page.' && npm publish --tag next && npm run deploy:storybook:next",
    "github:publish": "echo 'Publishing to npm and updating storybook on the github project page.' && npm publish",
    "snyk:test": "snyk test",
    "size": "size-limit"
  },
  "dependencies": {
    "accessible-autocomplete": "^2.0.1",
    "axios": "1.18.0",
    "classnames": "^2.3.2",
    "create-react-context": "^0.3.0",
    "css-initials": "^0.3.1",
    "deepmerge": "^4.3.1",
    "dotenv": "^6.2.0",
    "focusable-selectors": "^0.3.1",
    "get-contrast": "^3.0.0",
    "lint-staged": "^14.0.1",
    "lodash.throttle": "^4.1.1",
    "loki": "^0.33.1",
    "nodemon": "^3.0.2",
    "prop-types": "^15.6.1",
    "react-a11y-dialog": "^6.1.3",
    "react-media": "^1.8.0",
    "react-popper": "^0.10.1",
    "react-tabs": "^2.3.0",
    "react-toastify": "^7.0.3",
    "react-transition-group": "^2.3.1",
    "shelljs": "^0.8.5",
    "shortid": "^2.2.8",
    "storybook-addon-jsx": "^7.3.14",
    "warning": "^4.0.2"
  },
  "devDependencies": {
    "@babel/cli": "^7.0.0",
    "@babel/core": "^7.0.0",
    "@babel/eslint-parser": "^7.23.3",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-decorators": "^7.0.0",
    "@babel/plugin-proposal-do-expressions": "^7.0.0",
    "@babel/plugin-proposal-export-default-from": "^7.0.0",
    "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
    "@babel/plugin-proposal-function-bind": "^7.0.0",
    "@babel/plugin-proposal-function-sent": "^7.0.0",
    "@babel/plugin-proposal-json-strings": "^7.0.0",
    "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
    "@babel/plugin-proposal-numeric-separator": "^7.0.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
    "@babel/plugin-proposal-optional-chaining": "^7.0.0",
    "@babel/plugin-proposal-pipeline-operator": "^7.0.0",
    "@babel/plugin-proposal-throw-expressions": "^7.0.0",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/plugin-syntax-import-meta": "^7.0.0",
    "@babel/preset-env": "^7.0.0",
    "@babel/preset-react": "^7.0.0",
    "@size-limit/preset-app": "^11.0.1",
    "@storybook/addon-actions": "^7.6.21",
    "@storybook/addon-essentials": "^7.6.21",
    "@storybook/addon-knobs": "^7.0.2",
    "@storybook/addon-links": "^7.6.21",
    "@storybook/addon-viewport": "^7.6.21",
    "@storybook/addons": "^7.6.21",
    "@storybook/manager-api": "^7.6.21",
    "@storybook/react": "^7.6.21",
    "@storybook/react-webpack5": "^7.6.21",
    "@storybook/theming": "^7.6.21",
    "babel-jest": "^26.0.0",
    "babel-plugin-inline-react-svg": "^2.0.2",
    "babel-plugin-react-transform": "^3.0.0",
    "babel-plugin-styled-components": "^1.4.0",
    "babel-plugin-transform-dev-warning": "^0.1.1",
    "babel-plugin-transform-inline-environment-variables": "^0.4.3",
    "babel-preset-minify": "^0.3.0",
    "check-prop-types": "^1.1.2",
    "copyfiles": "^2.4.1",
    "enzyme": "^3.11.0",
    "enzyme-adapter-react-16": "^1.15.6",
    "eslint": "^8.56.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-jsx-a11y": "^6.8.0",
    "eslint-plugin-prettier": "^5.1.2",
    "eslint-plugin-react": "^7.33.2",
    "eslint-plugin-storybook": "^0.6.15",
    "gh-pages": "^5.0.0",
    "jest": "^26.0.0",
    "jest-styled-components": "^7.0.0",
    "messageformat": "^2.3.0",
    "onchange": "^7.1.0",
    "postcss": "^8.5.18",
    "postcss-styled-syntax": "^0.6.4",
    "pre-commit": "^1.2.2",
    "prettier": "^3.1.1",
    "react": "^16.8.6",
    "react-docgen": "^4.0.0",
    "react-dom": "^16.8.6",
    "react-test-renderer": "^16.4.0",
    "react-transform-catch-errors": "^1.0.2",
    "react-transform-hmr": "^1.0.4",
    "redbox-react": "^1.5.0",
    "rimraf": "^2.6.2",
    "size-limit": "^11.0.1",
    "snyk": "^1.1175.0",
    "storybook": "^7.6.21",
    "styled-components": "^5.3.3",
    "stylelint": "^16.1.0",
    "stylelint-config-recommended": "^14.0.0",
    "stylelint-order": "^6.0.4",
    "svg-inline-loader": "^0.8.0"
  },
  "overrides": {
    "form-data": "^4.0.6",
    "tar-fs": "2.1.4",
    "tar": "7.5.21",
    "cross-spawn": "7.0.6",
    "picomatch": "4.0.4",
    "minimatch": "3.1.4",
    "wait-on": "8.0.5",
    "ws": "8.21.0",
    "string-width": "4.2.3",
    "strip-ansi": "6.0.1",
    "ansi-regex": "5.0.1",
    "js-yaml": "4.3.1",
    "micromatch": "4.0.8",
    "@tootallnate/once": "2.0.1",
    "uuid": "^11.1.1",
    "nanoid": "3.3.18",
    "estimo": {
      "nanoid": "5.1.16"
    },
    "lint-staged": {
      "yaml": "2.8.3"
    },
    "esbuild": "0.25.0"
  },
  "peerDependencies": {
    "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
    "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
    "styled-components": "^5.0.0"
  },
  "publishConfig": {
    "registry": "https://registry.npmjs.org/",
    "access": "public"
  },
  "jest": {
    "setupTestFrameworkScriptFile": "../scripts/setup-jest.js"
  },
  "lint-staged": {
    "*.js": [
      "eslint",
      "stylelint --allow-empty-input",
      "jest --bail --findRelatedTests"
    ]
  },
  "loki": {
    "reference": "./.loki/lfs/reference",
    "output": "./.loki/lfs/current",
    "difference": "./.loki/lfs/difference",
    "chromeDockerImage": "yukinying/chrome-headless-browser-stable:106.0.5249.91",
    "pixelmatch": {
      "threshold": 0.5
    },
    "chromeRetries": 3,
    "chromeEnableAnimations": true,
    "chromeTolerance": 20,
    "reactUri": "file:./storybook-static",
    "chromeSelector": ".sb-show-main",
    "storiesFilter": "^Visual Regression Testing/.+",
    "configurations": {
      "chrome.desktop": {
        "target": "chrome.docker",
        "preset": "Retina Macbook Pro 15"
      },
      "chrome.mobile": {
        "target": "chrome.docker",
        "preset": "iPhone 7"
      }
    }
  },
  "pre-commit": "lint:staged",
  "size-limit": [
    {
      "path": "build/index.js",
      "limit": "44 KB"
    }
  ],
  "private": false
}