{"dist":{"shasum":"aa264b9ffdcd712d34a92c46cd58b660ddd81407","tarball":"https://registry.npmjs.org/@popperjs/core/-/core-2.0.0-next.12.tgz","fileCount":177,"integrity":"sha512-oHDAqN6CI2iRbBab1IadiV7emkTqrrs3VukKGFl20MxZRoWyF3DUsSHH36AI9Og5BCMOZCF4ZcM/hLwpEZP39A==","signatures":[{"sig":"MEUCIQCoBELPLk/bH9MEN8/zV/q2b8dVWoaGoaCuZthZPMTphgIgA8Jwjl41jYSiA38UFKo7+OdQuMqM1IGaLe/resg5hJU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1003141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6RpfCRA9TVsSAnZWagAAG84P/3iBVG/M52IwDUi0Pcgc\nYiTUp8J17eA0O/uWy/NjABZklXKb3ZNTT8iKRSaoTVvVu6pRCJdOU9kz/6L8\ncg5Vo8T2xrNR1Y3Z2/S41AiYAT174rYHqoHf5vfftK68PhMPBxtwMX86mOBD\ngYtmzXJgwHjCPTlvxH2dwhQWT5rR8MJidOyPc+K24dnvS4cE36/HJe9+DykS\nRUWXj08uILs17Te5nKjKVxvGG7CeR767NtwknNGoARG2B5sXoaKdt/+yO391\nfG1Wuk3xb2GB4xCdu7NN7kiP97BGN07cUpUlmK6BNDML2BbkOPu/+LlpUaDr\nPHKz4NQ/K+qPr4z/1Kd++lu7TS62Kj938Kz3G+7FyyIYRNvz/PcehChHoYM3\nv7pWbQtgchHWky5XZUAKeHroWE50oJuxj3KY6xTbU3Zt9sVXD3avzpEk+SJ8\nDAhmw7JZw6cBsSNjLtatywwf0PTELjix5Akv1eqZRr4zRaagepq4V6Hju1Eu\n6242ugNQ7acdPEfTNjM17lxX8Pn6k76UwXbN/DYWCMc+VOl93HINAsGvn70K\npKyv05AelW24DjqKsiuFuWq95tCCSYloPuL5sBvpseHI7FxYMMUv6GmBceHj\n8t/GFmcKfvrGK+jWlwxw6J0BEXYGHMQQo9nH2/uOnbhcVTon1026g9WK7RsE\nPxcV\r\n=p8EP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"preset":"jest-puppeteer","reporters":["default","<rootDir>/tests/image-reporter.js"],"testMatch":["<rootDir>/src/**/*.test.js","<rootDir>/tests/**/*.test.js"],"setupFiles":["dotenv/config"],"globalSetup":"jest-environment-puppeteer/setup","globalTeardown":"jest-environment-puppeteer/teardown","testEnvironment":"jsdom","setupFilesAfterEnv":["<rootDir>/tests/setupTests.js"]},"main":"dist/cjs/popper.js","name":"@popperjs/core","babel":{"env":{"test":{"plugins":["@babel/plugin-transform-runtime"],"presets":["@babel/env"]}},"plugins":["@babel/plugin-transform-flow-strip-types",["@babel/plugin-proposal-object-rest-spread",{"loose":true,"useBuiltIns":true}],"dev-expression"],"presets":[["@babel/env",{"loose":true,"modules":false}]]},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"unpkg":"dist/umd/popper.min.js","author":{"name":"Federico Zivolo","email":"fzivolo@quid.com"},"module":"lib/index.js","readme":"<p align=\"center\">\n  <img src=\"./docs/src/images/popper-logo.png\" alt=\"Popper\" height=\"300px\"/>\n</p>\n\nPositioning tooltips (_but also dropdowns, popovers, and more_) is difficult.\n**Popper** is here to help!\n\nGiven a reference element (such as a button) and a tooltip element, Popper will\nautomatically put your tooltip in the right place next to the button.\n\n### Why Popper?\n\nNaive tooltip implementations generally don't consider the following:\n\n- Preventing overflow when the tooltip is near a boundary (e.g. `window`), it\n  will get cut off;\n- Flipping to keep the tooltip visible in the viewport for the user;\n- Keeping the tooltip with the reference element when inside a scrolling\n  container;\n\nPopper solves all of these key problems in an elegant, performant manner. It is\na ~3 kB library that aims to provide a reliable and extensible positioning\nengine you can use to ensure all your popper elements are positioned in the\nright place. Why waste your time writing your own logic every time you are\nprogramming a tooltip? There are many edge cases that are easy to forget to\nconsider, which is why we've done the hard work for you.\n\nThis library can position any pair of elements in your document without needing\nto alter the DOM in any way. It doesn't matter if your elements are not close to\neach other or are in two different scrolling containers, they will always end up\nin the right position.\n\nSince we write UIs using powerful abstraction libraries such as React or Angular\nnowadays, you'll also be glad to know Popper can fully integrate with them and\nbe a good citizen together with your other components. Check out\n[`react-popper`](https://github.com/FezVrasta/react-popper) for the official\nPopper wrapper for React.\n\n## Installation\n\n### 1. Package Manager\n\n```bash\n# With Yarn\nyarn add @popperjs/core@next\n\n# With npm\nnpm i @popperjs/core@next\n```\n\n### 2. CDN\n\n```html\n<script src=\"https://unpkg.com/@popperjs/core@next\"></script>\n```\n\n### 3. Direct Download\n\nManually downloading the library is not recommended because you lose versioning\nmanagement that the unpkg CDN or npm/Yarn provide.\n\nYou don't receive fix/feat updates easily and will lag behind the website\ndocumentation, among other issues, and this quickly becomes an unmaintainable\nway to manage dependencies.\n\n## Usage\n\nPopper has the ability to work as a plug n' play library with all features\nincluded, as well as a tree-shakable library that minimizes bundle size if you\nimport only what you need.\n\n### CDN\n\nGenerally, for CDN users, you'll be using the fully-featured `umd` file:\n\n```html\n<script src=\"https://unpkg.com/@popperjs/core@next\"></script>\n<script>\n  // Now the script is loaded, you can use the `createPopper` function!\n</script>\n```\n\nImporting features you need comes at the cost of extra HTTP requests which is\nusually not worth it.\n\n### Module Bundlers\n\nFor users of module bundlers like webpack or Rollup, you're going to want to\ntake advantage of tree-shaking in your bundler. This comes at the cost of extra\nsetup, but is worth it.\n\nIn your app, you can do the following:\n\n```js\n// Import the generator function\nimport { popperGenerator } from '@popperjs/core';\n\n// Import the features you need\nimport {\n  computeStyles,\n  applyStyles,\n  detectOverflow,\n  preventOverflow,\n} from '@popperjs/core/lib/modifiers';\n\n// Setup Popper's default modifiers for each new instance\nconst createPopper = popperGenerator({\n  defaultModifiers: [\n    detectOverflow,\n    preventOverflow,\n    computeStyles,\n    applyStyles,\n  ],\n});\n```\n\nNow you can use the `createPopper` function to instantiate poppers with _only_\nthe features you want. For instance, we aren't using the `arrow`, `flip`, or\n`offset` modifiers, because the current component, route, or our entire app does\nnot need them. This lets us save on bundle size bytes for our users!\n\nIf you don't want to bother with tree-shaking and don't need bundle size cost\nadvantages, you can import the fully featured `esm` file:\n\n```js\n// All features included!\nimport { createPopper } from '@popperjs/core/lib/popper';\n```\n\n### Instantiation\n\nCreating a popper instance is done by passing the reference element (such as a\nbutton), the popper element (such as a tooltip), and some options to the\n`Popper` constructor:\n\n```js\n// Get your elements\nconst element = document.querySelector('#button');\nconst popper = document.querySelector('#tooltip');\n\n// Let Popper do the magic!\ncreatePopper(element, popper, { placement: 'right' });\n```\n\n## Distribution targets\n\nPopper is distributed in 3 different versions, in 3 different file formats.\n\nThe 3 file formats are:\n\n- `esm` (works with `import` syntax — **recommended**)\n- `umd` (works with `<script>` tags or RequireJS)\n- `cjs` (works with `require()` syntax)\n\nThe 3 versions are:\n\n- `popper`: includes all the modifiers (features) in one file (**default for\n  `umd`**);\n- `popper-lite`: includes only the minimum amount of modifiers to provide the\n  basic functionality;\n- `popper-base`: doesn't include any modifier, you must import them separately\n  (**default for `esm` and `cjs`**);\n\nBelow you can find the size of each version, minified and compressed with the\n[Brotli compression algorithm](https://medium.com/groww-engineering/enable-brotli-compression-in-webpack-with-fallback-to-gzip-397a57cf9fc6):\n\n![](https://badge-size.now.sh/https://unpkg.com/@popperjs/core@next/dist/umd/popper.min.js?compression=brotli&label=popper)\n![](https://badge-size.now.sh/https://unpkg.com/@popperjs/core@next/dist/umd/popper-lite.min.js?compression=brotli&label=popper-lite)\n![](https://badge-size.now.sh/https://unpkg.com/@popperjs/core@next/dist/umd/popper-minimal.min.js?compression=brotli&label=popper-minimal)\n\n## Hacking the library\n\nIf you want to play with the library, implement new features, fix a bug you\nfound, or simply experiment with it, this section is for you!\n\nFirst of all, make sure to have\n[Yarn installed](https://yarnpkg.com/lang/en/docs/install).\n\nInstall the development dependencies:\n\n```\nyarn install\n```\n\nAnd run the development environment:\n\n```\nyarn dev\n```\n\nThen, simply open one the development server web page:\n\n```\n# macOS and Linux\nopen localhost:5000\n\n# Windows\nstart localhost:5000\n```\n\nFrom there, you can open any of the examples (`.html` files) to fiddle with\nthem.\n\nNow any change you will made to the source code, will be automatically compiled,\nyou just need to refresh the page.\n\nIf the page is not working properly, try to go in _\"Developer Tools >\nApplication > Clear storage\"_ and click on \"_Clear site data_\".  \nTo run the examples you need a browser with\n[JavaScript modules via script tag support](https://caniuse.com/#feat=es6-module).\n\n## Test Suite\n\nPopper is currently tested with unit tests, and functional tests. Both of them\nare run by Jest.\n\n### Unit Tests\n\nThe unit tests use JSDOM to provide a primitive document object API, they are\nused to ensure the utility functions behave as expected in isolation.\n\n### Functional Tests\n\nThe functional tests run with Puppeteer, to take advantage of a complete browser\nenvironment. They are currently running on Chromium, and Firefox.\n\nYou can run them with `yarn test:functional`. Set the `PUPPETEER_BROWSER`\nenvironment variable to `firefox` to run them on the Mozilla browser.\n\nThe assertions are written in form of image snapshots, so that it's easy to\nassert for the correct Popper behavior without having to write a lot of offsets\ncomparisons manually.\n\nYou can mark a `*.test.js` file to run in the Puppeteer environment by\nprepending a `@jest-environment puppeteer` JSDoc comment to the interested file.\n\nHere's an example of a basic functional test:\n\n```js\n/**\n * @jest-environment puppeteer\n * @flow\n */\nimport { screenshot } from '../utils/puppeteer.js';\n\nit('should position the popper on the right', async () => {\n  const page = await browser.newPage();\n  await page.goto('http://localhost:5000/basic.html');\n\n  expect(await screenshot(page)).toMatchImageSnapshot();\n});\n```\n\nYou can find the complete\n[`jest-puppeteer` documentation here](https://github.com/smooth-code/jest-puppeteer#api),\nand the\n[`jest-image-snapshot` documentation here](https://github.com/americanexpress/jest-image-snapshot#%EF%B8%8F-api).\n","license":"MIT","scripts":{"dev":"concurrently 'yarn dev:serve' 'yarn dev:bundles --watch'","flow":"flow","test":"yarn test:unit && yarn test:functional","build":"yarn clean && yarn build:es && yarn build:bundles","clean":"rimraf lib && rimraf dist && rimraf test/visual/dist","eslint":"eslint .","build:es":"babel src -d lib --ignore '**/*.test.js','**/__mocks__'","dev:serve":"serve tests/visual","test:unit":"jest --coverage --watch src","dev:bundles":"cross-env NODE_ENV=development rollup -c rollup.config.js","postinstall":"patch-package","build:bundles":"rollup -c rollup.config.js","prepublishOnly":"yarn build","test:functional":"jest --watch tests/functional"},"_npmUser":{"name":"fezvrasta","email":"federico.zivolo@gmail.com"},"main:umd":"dist/umd/popper.js","prettier":{"semi":true,"proseWrap":"always","singleQuote":true,"trailingComma":"es5"},"repository":{"url":"https://github.com/popperjs/popper.js.git","type":"git"},"description":"A kickass library used to manage poppers in web applications","directories":{},"licenseText":"The MIT License (MIT)\n\nCopyright (c) 2019 Federico Zivolo\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","maintainers":[{"name":"fezvrasta","email":"federico.zivolo@gmail.com"}],"sideEffects":false,"eslintConfig":{"rules":{"unused-imports/no-unused-vars":"error","unused-imports/no-unused-imports":"error","flowtype/require-valid-file-annotation":["error","always"]},"parser":"babel-eslint","plugins":["flowtype","unused-imports"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.9.0","chalk":"^3.0.0","husky":"^3.1.0","serve":"^11.2.0","dotenv":"^8.2.0","poster":"^0.0.9","rollup":"^1.27.0","flow-bin":"0.112.0","prettier":"^1.19.1","cross-env":"^6.0.3","puppeteer":"^2.0.0","@babel/cli":"^7.1.5","babel-core":"7.0.0-bridge.0","babel-jest":"^24.9.0","@babel/core":"^7.1.5","babel-eslint":"^10.0.3","concurrently":"^5.0.0","pretty-quick":"^2.0.1","patch-package":"^6.2.0","@babel/runtime":"^7.7.4","jest-puppeteer":"^4.3.0","@babel/preset-env":"^7.1.5","puppeteer-firefox":"^0.5.0","jest-image-snapshot":"^2.11.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-terser":"^5.1.2","rollup-plugin-license":"^0.13.0","rollup-plugin-replace":"^2.1.0","eslint-plugin-flowtype":"^4.5.2","rollup-plugin-flow-entry":"^0.3.3","rollup-plugin-visualizer":"^3.3.0","rollup-plugin-bundle-size":"^1.0.2","jest-environment-puppeteer":"^4.3.0","babel-plugin-dev-expression":"^0.2.2","rollup-plugin-size-snapshot":"^0.10.0","eslint-plugin-unused-imports":"^0.1.1","@babel/plugin-transform-runtime":"^7.7.4","@babel/plugin-transform-flow-strip-types":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.0-next.12_1575557726952_0.45510684145382796","host":"s3://npm-registry-packages"},"_id":"@popperjs/core@2.0.0-next.12","version":"2.0.0-next.12"}