├── Capture.PNG
├── Capture2.PNG
├── LICENSE
├── README.md
├── example
├── README.md
├── package-lock.json
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
├── src
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ └── index.js
└── y
├── package-lock.json
├── package.json
├── src
├── control.js
├── index.js
├── index.test.js
└── styles.module.css
└── sticky logo.png
/Capture.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abodmicheal/react-js-stickynav/f1b5c5410ae96e7289e731ea14da6f649e0a08da/Capture.PNG
--------------------------------------------------------------------------------
/Capture2.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abodmicheal/react-js-stickynav/f1b5c5410ae96e7289e731ea14da6f649e0a08da/Capture2.PNG
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Abod Micheal
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
react-js-stickynav
4 |
5 | A simple react js nav bar onscroll
6 |
7 | [](https://www.npmjs.com/package/react-js-stickynav) [](https://standardjs.com)
8 |
9 | ## Intro
10 |
11 |
12 |
13 |
14 |
15 | ## Install
16 |
17 | ```bash
18 | npm install --save react-js-stickynav
19 | ```
20 |
21 | ## Usage
22 |
23 | length = navigation length , which is the length you want you want your sticky Nav to appear
24 |
25 | ```jsx
26 | import React from 'react'
27 | import { StickyNav } from 'react-js-stickynav'
28 | import 'react-js-stickynav/dist/index.css'
29 |
30 | const App = () => {
31 | const style = () => {
32 | return (
33 |
51 | )
52 | }
53 | return (
54 |
55 | {style()}
56 |
insert your Navbar Component here
57 |
58 |
59 | Creating a Single-Page App in React using React Router by kirupa |
60 | filed under Learning React Now that you've familiarized yourself with
61 | the basics of how to work with React, let's kick things up a few
62 | notches. What we are going to do is use React to build a simple
63 | single-page app (also referred to as SPA by the cool kids...and people
64 | living in Scandinavia). Like we talked about in our React introduction
65 | forever ago, single-page apps are different from the more traditional
66 | multi-page apps that you see everywhere. The biggest difference is
67 | that navigating a single-page app doesn't involve going to an entirely
68 | new page. Instead, your pages (commonly known as views in this
69 | context) typically load inline within the same page itself: When you
70 | are loading content inline, things get a little challenging. The hard
71 | part is not loading the content itself. That is relatively easy. The
72 | hard part is making sure that single-page apps behave in a way that is
73 | consistent with what your users are used to. More specifically, when
74 | users navigate your app, they expect that: The URL displayed in the
75 | address bar always reflects the thing that they are viewing. They can
76 | use the browser's back and forward buttons...successfully. They can
77 | navigate to a particular view (aka deep link) directly using the
78 | appropriate URL. With multi-page apps, these three things come for
79 | free. There is nothing extra you have to do for any of it. With
80 | single-page apps, because you aren't navigating to an entirely new
81 | page, you have to do real work to deal with these three things that
82 | your users expect to just work. You need to ensure that navigating
83 | within your app adjusts the URL appropriately. You need to ensure your
84 | browser's history is properly synchronized with
85 |
86 |
87 | Creating a Single-Page App in React using React Router by kirupa |
88 | filed under Learning React Now that you've familiarized yourself with
89 | the basics of how to work with React, let's kick things up a few
90 | notches. What we are going to do is use React to build a simple
91 | single-page app (also referred to as SPA by the cool kids...and people
92 | living in Scandinavia). Like we talked about in our React introduction
93 | forever ago, single-page apps are different from the more traditional
94 | multi-page apps that you see everywhere. The biggest difference is
95 | that navigating a single-page app doesn't involve going to an entirely
96 | new page. Instead, your pages (commonly known as views in this
97 | context) typically load inline within the same page itself: When you
98 | are loading content inline, things get a little challenging. The hard
99 | part is not loading the content itself. That is relatively easy. The
100 | hard part is making sure that single-page apps behave in a way that is
101 | consistent with what your users are used to. More specifically, when
102 | users navigate your app, they expect that: The URL displayed in the
103 | address bar always reflects the thing that they are viewing. They can
104 | use the browser's back and forward buttons...successfully. They can
105 | navigate to a particular view (aka deep link) directly using the
106 | appropriate URL. With multi-page apps, these three things come for
107 | free. There is nothing extra you have to do for any of it. With
108 | single-page apps, because you aren't navigating to an entirely new
109 | page, you have to do real work to deal with these three things that
110 | your users expect to just work. You need to ensure that navigating
111 | within your app adjusts the URL appropriately. You need to ensure your
112 | browser's history is properly synchronized with
113 |
114 |
115 |
116 | )
117 | }
118 |
119 | export default App
120 | ```
121 |
122 |
123 |
124 |
125 | ## License
126 |
127 | MIT © [abodmicheal](https://github.com/abodmicheal/react-js-stickynav)
128 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | This example was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
2 |
3 | It is linked to the react-js-stickynav package in the parent directory for development purposes.
4 |
5 | You can run `npm install` and then `npm start` to test your package.
6 |
--------------------------------------------------------------------------------
/example/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-js-stickynav-example",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "react-js-stickynav-example",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "react": "file:../node_modules/react",
12 | "react-dom": "file:../node_modules/react-dom",
13 | "react-js-stickynav": "file:..",
14 | "react-scripts": "file:../node_modules/react-scripts",
15 | "styled-jsx": "^4.0.1"
16 | },
17 | "devDependencies": {
18 | "@babel/plugin-syntax-object-rest-spread": "^7.8.3"
19 | }
20 | },
21 | "..": {
22 | "version": "1.0.0",
23 | "license": "MIT",
24 | "dependencies": {
25 | "styled-jsx": "^4.0.1"
26 | },
27 | "devDependencies": {
28 | "babel-eslint": "^10.0.3",
29 | "cross-env": "^7.0.2",
30 | "eslint": "^6.8.0",
31 | "eslint-config-prettier": "^6.7.0",
32 | "eslint-config-standard": "^14.1.0",
33 | "eslint-config-standard-react": "^9.2.0",
34 | "eslint-plugin-import": "^2.18.2",
35 | "eslint-plugin-node": "^11.0.0",
36 | "eslint-plugin-prettier": "^3.1.1",
37 | "eslint-plugin-promise": "^4.2.1",
38 | "eslint-plugin-react": "^7.17.0",
39 | "eslint-plugin-standard": "^4.0.1",
40 | "gh-pages": "^2.2.0",
41 | "microbundle-crl": "^0.13.10",
42 | "npm-run-all": "^4.1.5",
43 | "prettier": "^2.0.4",
44 | "react": "^16.13.1",
45 | "react-dom": "^16.13.1",
46 | "react-scripts": "^3.4.1",
47 | "styled-jsx": "^4.0.1"
48 | },
49 | "engines": {
50 | "node": ">=10"
51 | },
52 | "peerDependencies": {
53 | "react": "^16.0.0",
54 | "styled-jsx": "^4.0.1"
55 | }
56 | },
57 | "../node_modules/react": {
58 | "version": "16.14.0",
59 | "license": "MIT",
60 | "dependencies": {
61 | "loose-envify": "^1.1.0",
62 | "object-assign": "^4.1.1",
63 | "prop-types": "^15.6.2"
64 | },
65 | "engines": {
66 | "node": ">=0.10.0"
67 | }
68 | },
69 | "../node_modules/react-dom": {
70 | "version": "16.14.0",
71 | "license": "MIT",
72 | "dependencies": {
73 | "loose-envify": "^1.1.0",
74 | "object-assign": "^4.1.1",
75 | "prop-types": "^15.6.2",
76 | "scheduler": "^0.19.1"
77 | },
78 | "peerDependencies": {
79 | "react": "^16.14.0"
80 | }
81 | },
82 | "../node_modules/react-scripts": {
83 | "version": "3.4.4",
84 | "license": "MIT",
85 | "dependencies": {
86 | "@babel/core": "7.9.0",
87 | "@svgr/webpack": "4.3.3",
88 | "@typescript-eslint/eslint-plugin": "^2.10.0",
89 | "@typescript-eslint/parser": "^2.10.0",
90 | "babel-eslint": "10.1.0",
91 | "babel-jest": "^24.9.0",
92 | "babel-loader": "8.1.0",
93 | "babel-plugin-named-asset-import": "^0.3.6",
94 | "babel-preset-react-app": "^9.1.2",
95 | "camelcase": "^5.3.1",
96 | "case-sensitive-paths-webpack-plugin": "2.3.0",
97 | "css-loader": "3.4.2",
98 | "dotenv": "8.2.0",
99 | "dotenv-expand": "5.1.0",
100 | "eslint": "^6.6.0",
101 | "eslint-config-react-app": "^5.2.1",
102 | "eslint-loader": "3.0.3",
103 | "eslint-plugin-flowtype": "4.6.0",
104 | "eslint-plugin-import": "2.20.1",
105 | "eslint-plugin-jsx-a11y": "6.2.3",
106 | "eslint-plugin-react": "7.19.0",
107 | "eslint-plugin-react-hooks": "^1.6.1",
108 | "file-loader": "4.3.0",
109 | "fs-extra": "^8.1.0",
110 | "html-webpack-plugin": "4.0.0-beta.11",
111 | "identity-obj-proxy": "3.0.0",
112 | "jest": "24.9.0",
113 | "jest-environment-jsdom-fourteen": "1.0.1",
114 | "jest-resolve": "24.9.0",
115 | "jest-watch-typeahead": "0.4.2",
116 | "mini-css-extract-plugin": "0.9.0",
117 | "optimize-css-assets-webpack-plugin": "5.0.3",
118 | "pnp-webpack-plugin": "1.6.4",
119 | "postcss-flexbugs-fixes": "4.1.0",
120 | "postcss-loader": "3.0.0",
121 | "postcss-normalize": "8.0.1",
122 | "postcss-preset-env": "6.7.0",
123 | "postcss-safe-parser": "4.0.1",
124 | "react-app-polyfill": "^1.0.6",
125 | "react-dev-utils": "^10.2.1",
126 | "resolve": "1.15.0",
127 | "resolve-url-loader": "3.1.2",
128 | "sass-loader": "8.0.2",
129 | "semver": "6.3.0",
130 | "style-loader": "0.23.1",
131 | "terser-webpack-plugin": "2.3.8",
132 | "ts-pnp": "1.1.6",
133 | "url-loader": "2.3.0",
134 | "webpack": "4.42.0",
135 | "webpack-dev-server": "3.11.0",
136 | "webpack-manifest-plugin": "2.2.0",
137 | "workbox-webpack-plugin": "4.3.1"
138 | },
139 | "bin": {
140 | "react-scripts": "bin/react-scripts.js"
141 | },
142 | "engines": {
143 | "node": ">=8.10"
144 | },
145 | "optionalDependencies": {
146 | "fsevents": "2.1.2"
147 | },
148 | "peerDependencies": {
149 | "typescript": "^3.2.1"
150 | },
151 | "peerDependenciesMeta": {
152 | "typescript": {
153 | "optional": true
154 | }
155 | }
156 | },
157 | "node_modules/@babel/code-frame": {
158 | "version": "7.14.5",
159 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
160 | "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
161 | "peer": true,
162 | "dependencies": {
163 | "@babel/highlight": "^7.14.5"
164 | },
165 | "engines": {
166 | "node": ">=6.9.0"
167 | }
168 | },
169 | "node_modules/@babel/compat-data": {
170 | "version": "7.15.0",
171 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
172 | "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
173 | "peer": true,
174 | "engines": {
175 | "node": ">=6.9.0"
176 | }
177 | },
178 | "node_modules/@babel/core": {
179 | "version": "7.15.5",
180 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
181 | "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
182 | "peer": true,
183 | "dependencies": {
184 | "@babel/code-frame": "^7.14.5",
185 | "@babel/generator": "^7.15.4",
186 | "@babel/helper-compilation-targets": "^7.15.4",
187 | "@babel/helper-module-transforms": "^7.15.4",
188 | "@babel/helpers": "^7.15.4",
189 | "@babel/parser": "^7.15.5",
190 | "@babel/template": "^7.15.4",
191 | "@babel/traverse": "^7.15.4",
192 | "@babel/types": "^7.15.4",
193 | "convert-source-map": "^1.7.0",
194 | "debug": "^4.1.0",
195 | "gensync": "^1.0.0-beta.2",
196 | "json5": "^2.1.2",
197 | "semver": "^6.3.0",
198 | "source-map": "^0.5.0"
199 | },
200 | "engines": {
201 | "node": ">=6.9.0"
202 | },
203 | "funding": {
204 | "type": "opencollective",
205 | "url": "https://opencollective.com/babel"
206 | }
207 | },
208 | "node_modules/@babel/generator": {
209 | "version": "7.15.4",
210 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
211 | "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
212 | "peer": true,
213 | "dependencies": {
214 | "@babel/types": "^7.15.4",
215 | "jsesc": "^2.5.1",
216 | "source-map": "^0.5.0"
217 | },
218 | "engines": {
219 | "node": ">=6.9.0"
220 | }
221 | },
222 | "node_modules/@babel/helper-compilation-targets": {
223 | "version": "7.15.4",
224 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
225 | "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
226 | "peer": true,
227 | "dependencies": {
228 | "@babel/compat-data": "^7.15.0",
229 | "@babel/helper-validator-option": "^7.14.5",
230 | "browserslist": "^4.16.6",
231 | "semver": "^6.3.0"
232 | },
233 | "engines": {
234 | "node": ">=6.9.0"
235 | },
236 | "peerDependencies": {
237 | "@babel/core": "^7.0.0"
238 | }
239 | },
240 | "node_modules/@babel/helper-function-name": {
241 | "version": "7.15.4",
242 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
243 | "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
244 | "peer": true,
245 | "dependencies": {
246 | "@babel/helper-get-function-arity": "^7.15.4",
247 | "@babel/template": "^7.15.4",
248 | "@babel/types": "^7.15.4"
249 | },
250 | "engines": {
251 | "node": ">=6.9.0"
252 | }
253 | },
254 | "node_modules/@babel/helper-get-function-arity": {
255 | "version": "7.15.4",
256 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
257 | "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
258 | "peer": true,
259 | "dependencies": {
260 | "@babel/types": "^7.15.4"
261 | },
262 | "engines": {
263 | "node": ">=6.9.0"
264 | }
265 | },
266 | "node_modules/@babel/helper-hoist-variables": {
267 | "version": "7.15.4",
268 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
269 | "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
270 | "peer": true,
271 | "dependencies": {
272 | "@babel/types": "^7.15.4"
273 | },
274 | "engines": {
275 | "node": ">=6.9.0"
276 | }
277 | },
278 | "node_modules/@babel/helper-member-expression-to-functions": {
279 | "version": "7.15.4",
280 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
281 | "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
282 | "peer": true,
283 | "dependencies": {
284 | "@babel/types": "^7.15.4"
285 | },
286 | "engines": {
287 | "node": ">=6.9.0"
288 | }
289 | },
290 | "node_modules/@babel/helper-module-imports": {
291 | "version": "7.15.4",
292 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
293 | "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
294 | "peer": true,
295 | "dependencies": {
296 | "@babel/types": "^7.15.4"
297 | },
298 | "engines": {
299 | "node": ">=6.9.0"
300 | }
301 | },
302 | "node_modules/@babel/helper-module-transforms": {
303 | "version": "7.15.7",
304 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz",
305 | "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==",
306 | "peer": true,
307 | "dependencies": {
308 | "@babel/helper-module-imports": "^7.15.4",
309 | "@babel/helper-replace-supers": "^7.15.4",
310 | "@babel/helper-simple-access": "^7.15.4",
311 | "@babel/helper-split-export-declaration": "^7.15.4",
312 | "@babel/helper-validator-identifier": "^7.15.7",
313 | "@babel/template": "^7.15.4",
314 | "@babel/traverse": "^7.15.4",
315 | "@babel/types": "^7.15.6"
316 | },
317 | "engines": {
318 | "node": ">=6.9.0"
319 | }
320 | },
321 | "node_modules/@babel/helper-optimise-call-expression": {
322 | "version": "7.15.4",
323 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
324 | "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
325 | "peer": true,
326 | "dependencies": {
327 | "@babel/types": "^7.15.4"
328 | },
329 | "engines": {
330 | "node": ">=6.9.0"
331 | }
332 | },
333 | "node_modules/@babel/helper-plugin-utils": {
334 | "version": "7.14.5",
335 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
336 | "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==",
337 | "engines": {
338 | "node": ">=6.9.0"
339 | }
340 | },
341 | "node_modules/@babel/helper-replace-supers": {
342 | "version": "7.15.4",
343 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
344 | "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
345 | "peer": true,
346 | "dependencies": {
347 | "@babel/helper-member-expression-to-functions": "^7.15.4",
348 | "@babel/helper-optimise-call-expression": "^7.15.4",
349 | "@babel/traverse": "^7.15.4",
350 | "@babel/types": "^7.15.4"
351 | },
352 | "engines": {
353 | "node": ">=6.9.0"
354 | }
355 | },
356 | "node_modules/@babel/helper-simple-access": {
357 | "version": "7.15.4",
358 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
359 | "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
360 | "peer": true,
361 | "dependencies": {
362 | "@babel/types": "^7.15.4"
363 | },
364 | "engines": {
365 | "node": ">=6.9.0"
366 | }
367 | },
368 | "node_modules/@babel/helper-split-export-declaration": {
369 | "version": "7.15.4",
370 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
371 | "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
372 | "peer": true,
373 | "dependencies": {
374 | "@babel/types": "^7.15.4"
375 | },
376 | "engines": {
377 | "node": ">=6.9.0"
378 | }
379 | },
380 | "node_modules/@babel/helper-validator-identifier": {
381 | "version": "7.15.7",
382 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
383 | "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
384 | "engines": {
385 | "node": ">=6.9.0"
386 | }
387 | },
388 | "node_modules/@babel/helper-validator-option": {
389 | "version": "7.14.5",
390 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
391 | "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
392 | "peer": true,
393 | "engines": {
394 | "node": ">=6.9.0"
395 | }
396 | },
397 | "node_modules/@babel/helpers": {
398 | "version": "7.15.4",
399 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
400 | "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
401 | "peer": true,
402 | "dependencies": {
403 | "@babel/template": "^7.15.4",
404 | "@babel/traverse": "^7.15.4",
405 | "@babel/types": "^7.15.4"
406 | },
407 | "engines": {
408 | "node": ">=6.9.0"
409 | }
410 | },
411 | "node_modules/@babel/highlight": {
412 | "version": "7.14.5",
413 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
414 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
415 | "peer": true,
416 | "dependencies": {
417 | "@babel/helper-validator-identifier": "^7.14.5",
418 | "chalk": "^2.0.0",
419 | "js-tokens": "^4.0.0"
420 | },
421 | "engines": {
422 | "node": ">=6.9.0"
423 | }
424 | },
425 | "node_modules/@babel/parser": {
426 | "version": "7.15.7",
427 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz",
428 | "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==",
429 | "peer": true,
430 | "bin": {
431 | "parser": "bin/babel-parser.js"
432 | },
433 | "engines": {
434 | "node": ">=6.0.0"
435 | }
436 | },
437 | "node_modules/@babel/plugin-syntax-jsx": {
438 | "version": "7.14.5",
439 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz",
440 | "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==",
441 | "dependencies": {
442 | "@babel/helper-plugin-utils": "^7.14.5"
443 | },
444 | "engines": {
445 | "node": ">=6.9.0"
446 | },
447 | "peerDependencies": {
448 | "@babel/core": "^7.0.0-0"
449 | }
450 | },
451 | "node_modules/@babel/plugin-syntax-object-rest-spread": {
452 | "version": "7.8.3",
453 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
454 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
455 | "dev": true,
456 | "dependencies": {
457 | "@babel/helper-plugin-utils": "^7.8.0"
458 | },
459 | "peerDependencies": {
460 | "@babel/core": "^7.0.0-0"
461 | }
462 | },
463 | "node_modules/@babel/template": {
464 | "version": "7.15.4",
465 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
466 | "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
467 | "peer": true,
468 | "dependencies": {
469 | "@babel/code-frame": "^7.14.5",
470 | "@babel/parser": "^7.15.4",
471 | "@babel/types": "^7.15.4"
472 | },
473 | "engines": {
474 | "node": ">=6.9.0"
475 | }
476 | },
477 | "node_modules/@babel/traverse": {
478 | "version": "7.15.4",
479 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
480 | "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
481 | "peer": true,
482 | "dependencies": {
483 | "@babel/code-frame": "^7.14.5",
484 | "@babel/generator": "^7.15.4",
485 | "@babel/helper-function-name": "^7.15.4",
486 | "@babel/helper-hoist-variables": "^7.15.4",
487 | "@babel/helper-split-export-declaration": "^7.15.4",
488 | "@babel/parser": "^7.15.4",
489 | "@babel/types": "^7.15.4",
490 | "debug": "^4.1.0",
491 | "globals": "^11.1.0"
492 | },
493 | "engines": {
494 | "node": ">=6.9.0"
495 | }
496 | },
497 | "node_modules/@babel/types": {
498 | "version": "7.15.6",
499 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
500 | "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
501 | "peer": true,
502 | "dependencies": {
503 | "@babel/helper-validator-identifier": "^7.14.9",
504 | "to-fast-properties": "^2.0.0"
505 | },
506 | "engines": {
507 | "node": ">=6.9.0"
508 | }
509 | },
510 | "node_modules/ansi-styles": {
511 | "version": "3.2.1",
512 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
513 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
514 | "peer": true,
515 | "dependencies": {
516 | "color-convert": "^1.9.0"
517 | },
518 | "engines": {
519 | "node": ">=4"
520 | }
521 | },
522 | "node_modules/big.js": {
523 | "version": "5.2.2",
524 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
525 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
526 | "engines": {
527 | "node": "*"
528 | }
529 | },
530 | "node_modules/browserslist": {
531 | "version": "4.17.1",
532 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz",
533 | "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==",
534 | "peer": true,
535 | "dependencies": {
536 | "caniuse-lite": "^1.0.30001259",
537 | "electron-to-chromium": "^1.3.846",
538 | "escalade": "^3.1.1",
539 | "nanocolors": "^0.1.5",
540 | "node-releases": "^1.1.76"
541 | },
542 | "bin": {
543 | "browserslist": "cli.js"
544 | },
545 | "engines": {
546 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
547 | },
548 | "funding": {
549 | "type": "opencollective",
550 | "url": "https://opencollective.com/browserslist"
551 | }
552 | },
553 | "node_modules/caniuse-lite": {
554 | "version": "1.0.30001259",
555 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001259.tgz",
556 | "integrity": "sha512-V7mQTFhjITxuk9zBpI6nYsiTXhcPe05l+364nZjK7MFK/E7ibvYBSAXr4YcA6oPR8j3ZLM/LN+lUqUVAQEUZFg==",
557 | "peer": true,
558 | "funding": {
559 | "type": "opencollective",
560 | "url": "https://opencollective.com/browserslist"
561 | }
562 | },
563 | "node_modules/chalk": {
564 | "version": "2.4.2",
565 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
566 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
567 | "peer": true,
568 | "dependencies": {
569 | "ansi-styles": "^3.2.1",
570 | "escape-string-regexp": "^1.0.5",
571 | "supports-color": "^5.3.0"
572 | },
573 | "engines": {
574 | "node": ">=4"
575 | }
576 | },
577 | "node_modules/color-convert": {
578 | "version": "1.9.3",
579 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
580 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
581 | "peer": true,
582 | "dependencies": {
583 | "color-name": "1.1.3"
584 | }
585 | },
586 | "node_modules/color-name": {
587 | "version": "1.1.3",
588 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
589 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
590 | "peer": true
591 | },
592 | "node_modules/convert-source-map": {
593 | "version": "1.8.0",
594 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
595 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
596 | "peer": true,
597 | "dependencies": {
598 | "safe-buffer": "~5.1.1"
599 | }
600 | },
601 | "node_modules/debug": {
602 | "version": "4.3.2",
603 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
604 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
605 | "peer": true,
606 | "dependencies": {
607 | "ms": "2.1.2"
608 | },
609 | "engines": {
610 | "node": ">=6.0"
611 | },
612 | "peerDependenciesMeta": {
613 | "supports-color": {
614 | "optional": true
615 | }
616 | }
617 | },
618 | "node_modules/electron-to-chromium": {
619 | "version": "1.3.847",
620 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.847.tgz",
621 | "integrity": "sha512-u2VQOKACHgflbu9TAAiJ9UPaQj6AD0dijL79wdqTAzFz86GXSTTPyaoxP3gZflH+r0DAlY0jD4G0TqzHzLN6Vg==",
622 | "peer": true
623 | },
624 | "node_modules/emojis-list": {
625 | "version": "2.1.0",
626 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
627 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
628 | "engines": {
629 | "node": ">= 0.10"
630 | }
631 | },
632 | "node_modules/escalade": {
633 | "version": "3.1.1",
634 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
635 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
636 | "peer": true,
637 | "engines": {
638 | "node": ">=6"
639 | }
640 | },
641 | "node_modules/escape-string-regexp": {
642 | "version": "1.0.5",
643 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
644 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
645 | "peer": true,
646 | "engines": {
647 | "node": ">=0.8.0"
648 | }
649 | },
650 | "node_modules/gensync": {
651 | "version": "1.0.0-beta.2",
652 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
653 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
654 | "peer": true,
655 | "engines": {
656 | "node": ">=6.9.0"
657 | }
658 | },
659 | "node_modules/globals": {
660 | "version": "11.12.0",
661 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
662 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
663 | "peer": true,
664 | "engines": {
665 | "node": ">=4"
666 | }
667 | },
668 | "node_modules/has-flag": {
669 | "version": "3.0.0",
670 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
671 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
672 | "peer": true,
673 | "engines": {
674 | "node": ">=4"
675 | }
676 | },
677 | "node_modules/js-tokens": {
678 | "version": "4.0.0",
679 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
680 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
681 | "peer": true
682 | },
683 | "node_modules/jsesc": {
684 | "version": "2.5.2",
685 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
686 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
687 | "peer": true,
688 | "bin": {
689 | "jsesc": "bin/jsesc"
690 | },
691 | "engines": {
692 | "node": ">=4"
693 | }
694 | },
695 | "node_modules/json5": {
696 | "version": "2.2.0",
697 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
698 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
699 | "peer": true,
700 | "dependencies": {
701 | "minimist": "^1.2.5"
702 | },
703 | "bin": {
704 | "json5": "lib/cli.js"
705 | },
706 | "engines": {
707 | "node": ">=6"
708 | }
709 | },
710 | "node_modules/loader-utils": {
711 | "version": "1.2.3",
712 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
713 | "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
714 | "dependencies": {
715 | "big.js": "^5.2.2",
716 | "emojis-list": "^2.0.0",
717 | "json5": "^1.0.1"
718 | },
719 | "engines": {
720 | "node": ">=4.0.0"
721 | }
722 | },
723 | "node_modules/loader-utils/node_modules/json5": {
724 | "version": "1.0.1",
725 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
726 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
727 | "dependencies": {
728 | "minimist": "^1.2.0"
729 | },
730 | "bin": {
731 | "json5": "lib/cli.js"
732 | }
733 | },
734 | "node_modules/minimist": {
735 | "version": "1.2.5",
736 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
737 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
738 | },
739 | "node_modules/ms": {
740 | "version": "2.1.2",
741 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
742 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
743 | "peer": true
744 | },
745 | "node_modules/nanocolors": {
746 | "version": "0.1.6",
747 | "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.6.tgz",
748 | "integrity": "sha512-2pvTw6vYRaBLGir2xR7MxaJtyWkrn+C53EpW8yPotG+pdAwBvt0Xwk4VJ6VHLY0aLthVZPvDfm9TdZvrvAm5UQ==",
749 | "peer": true,
750 | "engines": {
751 | "node": ">=8.0.0"
752 | }
753 | },
754 | "node_modules/node-releases": {
755 | "version": "1.1.76",
756 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz",
757 | "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==",
758 | "peer": true
759 | },
760 | "node_modules/react": {
761 | "resolved": "../node_modules/react",
762 | "link": true
763 | },
764 | "node_modules/react-dom": {
765 | "resolved": "../node_modules/react-dom",
766 | "link": true
767 | },
768 | "node_modules/react-js-stickynav": {
769 | "resolved": "..",
770 | "link": true
771 | },
772 | "node_modules/react-scripts": {
773 | "resolved": "../node_modules/react-scripts",
774 | "link": true
775 | },
776 | "node_modules/safe-buffer": {
777 | "version": "5.1.2",
778 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
779 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
780 | },
781 | "node_modules/semver": {
782 | "version": "6.3.0",
783 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
784 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
785 | "peer": true,
786 | "bin": {
787 | "semver": "bin/semver.js"
788 | }
789 | },
790 | "node_modules/source-map": {
791 | "version": "0.5.7",
792 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
793 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
794 | "peer": true,
795 | "engines": {
796 | "node": ">=0.10.0"
797 | }
798 | },
799 | "node_modules/string-hash": {
800 | "version": "1.1.3",
801 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
802 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
803 | },
804 | "node_modules/styled-jsx": {
805 | "version": "4.0.1",
806 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-4.0.1.tgz",
807 | "integrity": "sha512-Gcb49/dRB1k8B4hdK8vhW27Rlb2zujCk1fISrizCcToIs+55B4vmUM0N9Gi4nnVfFZWe55jRdWpAqH1ldAKWvQ==",
808 | "dependencies": {
809 | "@babel/plugin-syntax-jsx": "7.14.5",
810 | "@babel/types": "7.15.0",
811 | "convert-source-map": "1.7.0",
812 | "loader-utils": "1.2.3",
813 | "source-map": "0.7.3",
814 | "string-hash": "1.1.3",
815 | "stylis": "3.5.4",
816 | "stylis-rule-sheet": "0.0.10"
817 | },
818 | "engines": {
819 | "node": ">= 12.0.0"
820 | },
821 | "peerDependencies": {
822 | "react": ">= 16.8.0 || 17.x.x || 18.x.x"
823 | },
824 | "peerDependenciesMeta": {
825 | "@babel/core": {
826 | "optional": true
827 | }
828 | }
829 | },
830 | "node_modules/styled-jsx/node_modules/@babel/types": {
831 | "version": "7.15.0",
832 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
833 | "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
834 | "dependencies": {
835 | "@babel/helper-validator-identifier": "^7.14.9",
836 | "to-fast-properties": "^2.0.0"
837 | },
838 | "engines": {
839 | "node": ">=6.9.0"
840 | }
841 | },
842 | "node_modules/styled-jsx/node_modules/convert-source-map": {
843 | "version": "1.7.0",
844 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
845 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
846 | "dependencies": {
847 | "safe-buffer": "~5.1.1"
848 | }
849 | },
850 | "node_modules/styled-jsx/node_modules/source-map": {
851 | "version": "0.7.3",
852 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
853 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
854 | "engines": {
855 | "node": ">= 8"
856 | }
857 | },
858 | "node_modules/stylis": {
859 | "version": "3.5.4",
860 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
861 | "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
862 | },
863 | "node_modules/stylis-rule-sheet": {
864 | "version": "0.0.10",
865 | "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
866 | "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==",
867 | "peerDependencies": {
868 | "stylis": "^3.5.0"
869 | }
870 | },
871 | "node_modules/supports-color": {
872 | "version": "5.5.0",
873 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
874 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
875 | "peer": true,
876 | "dependencies": {
877 | "has-flag": "^3.0.0"
878 | },
879 | "engines": {
880 | "node": ">=4"
881 | }
882 | },
883 | "node_modules/to-fast-properties": {
884 | "version": "2.0.0",
885 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
886 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
887 | "engines": {
888 | "node": ">=4"
889 | }
890 | }
891 | },
892 | "dependencies": {
893 | "@babel/code-frame": {
894 | "version": "7.14.5",
895 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
896 | "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
897 | "peer": true,
898 | "requires": {
899 | "@babel/highlight": "^7.14.5"
900 | }
901 | },
902 | "@babel/compat-data": {
903 | "version": "7.15.0",
904 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
905 | "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
906 | "peer": true
907 | },
908 | "@babel/core": {
909 | "version": "7.15.5",
910 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
911 | "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
912 | "peer": true,
913 | "requires": {
914 | "@babel/code-frame": "^7.14.5",
915 | "@babel/generator": "^7.15.4",
916 | "@babel/helper-compilation-targets": "^7.15.4",
917 | "@babel/helper-module-transforms": "^7.15.4",
918 | "@babel/helpers": "^7.15.4",
919 | "@babel/parser": "^7.15.5",
920 | "@babel/template": "^7.15.4",
921 | "@babel/traverse": "^7.15.4",
922 | "@babel/types": "^7.15.4",
923 | "convert-source-map": "^1.7.0",
924 | "debug": "^4.1.0",
925 | "gensync": "^1.0.0-beta.2",
926 | "json5": "^2.1.2",
927 | "semver": "^6.3.0",
928 | "source-map": "^0.5.0"
929 | }
930 | },
931 | "@babel/generator": {
932 | "version": "7.15.4",
933 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
934 | "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
935 | "peer": true,
936 | "requires": {
937 | "@babel/types": "^7.15.4",
938 | "jsesc": "^2.5.1",
939 | "source-map": "^0.5.0"
940 | }
941 | },
942 | "@babel/helper-compilation-targets": {
943 | "version": "7.15.4",
944 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
945 | "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
946 | "peer": true,
947 | "requires": {
948 | "@babel/compat-data": "^7.15.0",
949 | "@babel/helper-validator-option": "^7.14.5",
950 | "browserslist": "^4.16.6",
951 | "semver": "^6.3.0"
952 | }
953 | },
954 | "@babel/helper-function-name": {
955 | "version": "7.15.4",
956 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
957 | "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
958 | "peer": true,
959 | "requires": {
960 | "@babel/helper-get-function-arity": "^7.15.4",
961 | "@babel/template": "^7.15.4",
962 | "@babel/types": "^7.15.4"
963 | }
964 | },
965 | "@babel/helper-get-function-arity": {
966 | "version": "7.15.4",
967 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
968 | "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
969 | "peer": true,
970 | "requires": {
971 | "@babel/types": "^7.15.4"
972 | }
973 | },
974 | "@babel/helper-hoist-variables": {
975 | "version": "7.15.4",
976 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
977 | "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
978 | "peer": true,
979 | "requires": {
980 | "@babel/types": "^7.15.4"
981 | }
982 | },
983 | "@babel/helper-member-expression-to-functions": {
984 | "version": "7.15.4",
985 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
986 | "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
987 | "peer": true,
988 | "requires": {
989 | "@babel/types": "^7.15.4"
990 | }
991 | },
992 | "@babel/helper-module-imports": {
993 | "version": "7.15.4",
994 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
995 | "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
996 | "peer": true,
997 | "requires": {
998 | "@babel/types": "^7.15.4"
999 | }
1000 | },
1001 | "@babel/helper-module-transforms": {
1002 | "version": "7.15.7",
1003 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz",
1004 | "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==",
1005 | "peer": true,
1006 | "requires": {
1007 | "@babel/helper-module-imports": "^7.15.4",
1008 | "@babel/helper-replace-supers": "^7.15.4",
1009 | "@babel/helper-simple-access": "^7.15.4",
1010 | "@babel/helper-split-export-declaration": "^7.15.4",
1011 | "@babel/helper-validator-identifier": "^7.15.7",
1012 | "@babel/template": "^7.15.4",
1013 | "@babel/traverse": "^7.15.4",
1014 | "@babel/types": "^7.15.6"
1015 | }
1016 | },
1017 | "@babel/helper-optimise-call-expression": {
1018 | "version": "7.15.4",
1019 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
1020 | "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
1021 | "peer": true,
1022 | "requires": {
1023 | "@babel/types": "^7.15.4"
1024 | }
1025 | },
1026 | "@babel/helper-plugin-utils": {
1027 | "version": "7.14.5",
1028 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
1029 | "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ=="
1030 | },
1031 | "@babel/helper-replace-supers": {
1032 | "version": "7.15.4",
1033 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
1034 | "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
1035 | "peer": true,
1036 | "requires": {
1037 | "@babel/helper-member-expression-to-functions": "^7.15.4",
1038 | "@babel/helper-optimise-call-expression": "^7.15.4",
1039 | "@babel/traverse": "^7.15.4",
1040 | "@babel/types": "^7.15.4"
1041 | }
1042 | },
1043 | "@babel/helper-simple-access": {
1044 | "version": "7.15.4",
1045 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
1046 | "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
1047 | "peer": true,
1048 | "requires": {
1049 | "@babel/types": "^7.15.4"
1050 | }
1051 | },
1052 | "@babel/helper-split-export-declaration": {
1053 | "version": "7.15.4",
1054 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
1055 | "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
1056 | "peer": true,
1057 | "requires": {
1058 | "@babel/types": "^7.15.4"
1059 | }
1060 | },
1061 | "@babel/helper-validator-identifier": {
1062 | "version": "7.15.7",
1063 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
1064 | "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w=="
1065 | },
1066 | "@babel/helper-validator-option": {
1067 | "version": "7.14.5",
1068 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
1069 | "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
1070 | "peer": true
1071 | },
1072 | "@babel/helpers": {
1073 | "version": "7.15.4",
1074 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
1075 | "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
1076 | "peer": true,
1077 | "requires": {
1078 | "@babel/template": "^7.15.4",
1079 | "@babel/traverse": "^7.15.4",
1080 | "@babel/types": "^7.15.4"
1081 | }
1082 | },
1083 | "@babel/highlight": {
1084 | "version": "7.14.5",
1085 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
1086 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
1087 | "peer": true,
1088 | "requires": {
1089 | "@babel/helper-validator-identifier": "^7.14.5",
1090 | "chalk": "^2.0.0",
1091 | "js-tokens": "^4.0.0"
1092 | }
1093 | },
1094 | "@babel/parser": {
1095 | "version": "7.15.7",
1096 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz",
1097 | "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==",
1098 | "peer": true
1099 | },
1100 | "@babel/plugin-syntax-jsx": {
1101 | "version": "7.14.5",
1102 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz",
1103 | "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==",
1104 | "requires": {
1105 | "@babel/helper-plugin-utils": "^7.14.5"
1106 | }
1107 | },
1108 | "@babel/plugin-syntax-object-rest-spread": {
1109 | "version": "7.8.3",
1110 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
1111 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
1112 | "dev": true,
1113 | "requires": {
1114 | "@babel/helper-plugin-utils": "^7.8.0"
1115 | }
1116 | },
1117 | "@babel/template": {
1118 | "version": "7.15.4",
1119 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
1120 | "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
1121 | "peer": true,
1122 | "requires": {
1123 | "@babel/code-frame": "^7.14.5",
1124 | "@babel/parser": "^7.15.4",
1125 | "@babel/types": "^7.15.4"
1126 | }
1127 | },
1128 | "@babel/traverse": {
1129 | "version": "7.15.4",
1130 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
1131 | "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
1132 | "peer": true,
1133 | "requires": {
1134 | "@babel/code-frame": "^7.14.5",
1135 | "@babel/generator": "^7.15.4",
1136 | "@babel/helper-function-name": "^7.15.4",
1137 | "@babel/helper-hoist-variables": "^7.15.4",
1138 | "@babel/helper-split-export-declaration": "^7.15.4",
1139 | "@babel/parser": "^7.15.4",
1140 | "@babel/types": "^7.15.4",
1141 | "debug": "^4.1.0",
1142 | "globals": "^11.1.0"
1143 | }
1144 | },
1145 | "@babel/types": {
1146 | "version": "7.15.6",
1147 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
1148 | "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
1149 | "peer": true,
1150 | "requires": {
1151 | "@babel/helper-validator-identifier": "^7.14.9",
1152 | "to-fast-properties": "^2.0.0"
1153 | }
1154 | },
1155 | "ansi-styles": {
1156 | "version": "3.2.1",
1157 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1158 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1159 | "peer": true,
1160 | "requires": {
1161 | "color-convert": "^1.9.0"
1162 | }
1163 | },
1164 | "big.js": {
1165 | "version": "5.2.2",
1166 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
1167 | "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
1168 | },
1169 | "browserslist": {
1170 | "version": "4.17.1",
1171 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz",
1172 | "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==",
1173 | "peer": true,
1174 | "requires": {
1175 | "caniuse-lite": "^1.0.30001259",
1176 | "electron-to-chromium": "^1.3.846",
1177 | "escalade": "^3.1.1",
1178 | "nanocolors": "^0.1.5",
1179 | "node-releases": "^1.1.76"
1180 | }
1181 | },
1182 | "caniuse-lite": {
1183 | "version": "1.0.30001259",
1184 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001259.tgz",
1185 | "integrity": "sha512-V7mQTFhjITxuk9zBpI6nYsiTXhcPe05l+364nZjK7MFK/E7ibvYBSAXr4YcA6oPR8j3ZLM/LN+lUqUVAQEUZFg==",
1186 | "peer": true
1187 | },
1188 | "chalk": {
1189 | "version": "2.4.2",
1190 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1191 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1192 | "peer": true,
1193 | "requires": {
1194 | "ansi-styles": "^3.2.1",
1195 | "escape-string-regexp": "^1.0.5",
1196 | "supports-color": "^5.3.0"
1197 | }
1198 | },
1199 | "color-convert": {
1200 | "version": "1.9.3",
1201 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1202 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1203 | "peer": true,
1204 | "requires": {
1205 | "color-name": "1.1.3"
1206 | }
1207 | },
1208 | "color-name": {
1209 | "version": "1.1.3",
1210 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1211 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1212 | "peer": true
1213 | },
1214 | "convert-source-map": {
1215 | "version": "1.8.0",
1216 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
1217 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
1218 | "peer": true,
1219 | "requires": {
1220 | "safe-buffer": "~5.1.1"
1221 | }
1222 | },
1223 | "debug": {
1224 | "version": "4.3.2",
1225 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
1226 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
1227 | "peer": true,
1228 | "requires": {
1229 | "ms": "2.1.2"
1230 | }
1231 | },
1232 | "electron-to-chromium": {
1233 | "version": "1.3.847",
1234 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.847.tgz",
1235 | "integrity": "sha512-u2VQOKACHgflbu9TAAiJ9UPaQj6AD0dijL79wdqTAzFz86GXSTTPyaoxP3gZflH+r0DAlY0jD4G0TqzHzLN6Vg==",
1236 | "peer": true
1237 | },
1238 | "emojis-list": {
1239 | "version": "2.1.0",
1240 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
1241 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
1242 | },
1243 | "escalade": {
1244 | "version": "3.1.1",
1245 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1246 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1247 | "peer": true
1248 | },
1249 | "escape-string-regexp": {
1250 | "version": "1.0.5",
1251 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1252 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1253 | "peer": true
1254 | },
1255 | "gensync": {
1256 | "version": "1.0.0-beta.2",
1257 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
1258 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
1259 | "peer": true
1260 | },
1261 | "globals": {
1262 | "version": "11.12.0",
1263 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1264 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1265 | "peer": true
1266 | },
1267 | "has-flag": {
1268 | "version": "3.0.0",
1269 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1270 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1271 | "peer": true
1272 | },
1273 | "js-tokens": {
1274 | "version": "4.0.0",
1275 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1276 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1277 | "peer": true
1278 | },
1279 | "jsesc": {
1280 | "version": "2.5.2",
1281 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1282 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1283 | "peer": true
1284 | },
1285 | "json5": {
1286 | "version": "2.2.0",
1287 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
1288 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
1289 | "peer": true,
1290 | "requires": {
1291 | "minimist": "^1.2.5"
1292 | }
1293 | },
1294 | "loader-utils": {
1295 | "version": "1.2.3",
1296 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
1297 | "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
1298 | "requires": {
1299 | "big.js": "^5.2.2",
1300 | "emojis-list": "^2.0.0",
1301 | "json5": "^1.0.1"
1302 | },
1303 | "dependencies": {
1304 | "json5": {
1305 | "version": "1.0.1",
1306 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
1307 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
1308 | "requires": {
1309 | "minimist": "^1.2.0"
1310 | }
1311 | }
1312 | }
1313 | },
1314 | "minimist": {
1315 | "version": "1.2.5",
1316 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1317 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1318 | },
1319 | "ms": {
1320 | "version": "2.1.2",
1321 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1322 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1323 | "peer": true
1324 | },
1325 | "nanocolors": {
1326 | "version": "0.1.6",
1327 | "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.6.tgz",
1328 | "integrity": "sha512-2pvTw6vYRaBLGir2xR7MxaJtyWkrn+C53EpW8yPotG+pdAwBvt0Xwk4VJ6VHLY0aLthVZPvDfm9TdZvrvAm5UQ==",
1329 | "peer": true
1330 | },
1331 | "node-releases": {
1332 | "version": "1.1.76",
1333 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz",
1334 | "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==",
1335 | "peer": true
1336 | },
1337 | "react": {
1338 | "version": "file:../node_modules/react",
1339 | "requires": {
1340 | "loose-envify": "^1.1.0",
1341 | "object-assign": "^4.1.1",
1342 | "prop-types": "^15.6.2"
1343 | }
1344 | },
1345 | "react-dom": {
1346 | "version": "file:../node_modules/react-dom",
1347 | "requires": {
1348 | "loose-envify": "^1.1.0",
1349 | "object-assign": "^4.1.1",
1350 | "prop-types": "^15.6.2",
1351 | "scheduler": "^0.19.1"
1352 | }
1353 | },
1354 | "react-js-stickynav": {
1355 | "version": "file:..",
1356 | "requires": {
1357 | "babel-eslint": "^10.0.3",
1358 | "cross-env": "^7.0.2",
1359 | "eslint": "^6.8.0",
1360 | "eslint-config-prettier": "^6.7.0",
1361 | "eslint-config-standard": "^14.1.0",
1362 | "eslint-config-standard-react": "^9.2.0",
1363 | "eslint-plugin-import": "^2.18.2",
1364 | "eslint-plugin-node": "^11.0.0",
1365 | "eslint-plugin-prettier": "^3.1.1",
1366 | "eslint-plugin-promise": "^4.2.1",
1367 | "eslint-plugin-react": "^7.17.0",
1368 | "eslint-plugin-standard": "^4.0.1",
1369 | "gh-pages": "^2.2.0",
1370 | "microbundle-crl": "^0.13.10",
1371 | "npm-run-all": "^4.1.5",
1372 | "prettier": "^2.0.4",
1373 | "react": "^16.13.1",
1374 | "react-dom": "^16.13.1",
1375 | "react-scripts": "^3.4.1",
1376 | "styled-jsx": "^4.0.1"
1377 | },
1378 | "dependencies": {
1379 | "react": {
1380 | "version": "16.14.0",
1381 | "requires": {
1382 | "loose-envify": "^1.1.0",
1383 | "object-assign": "^4.1.1",
1384 | "prop-types": "^15.6.2"
1385 | }
1386 | },
1387 | "react-dom": {
1388 | "version": "16.14.0",
1389 | "requires": {
1390 | "loose-envify": "^1.1.0",
1391 | "object-assign": "^4.1.1",
1392 | "prop-types": "^15.6.2",
1393 | "scheduler": "^0.19.1"
1394 | }
1395 | },
1396 | "react-scripts": {
1397 | "version": "3.4.4",
1398 | "requires": {
1399 | "@babel/core": "7.9.0",
1400 | "@svgr/webpack": "4.3.3",
1401 | "@typescript-eslint/eslint-plugin": "^2.10.0",
1402 | "@typescript-eslint/parser": "^2.10.0",
1403 | "babel-eslint": "10.1.0",
1404 | "babel-jest": "^24.9.0",
1405 | "babel-loader": "8.1.0",
1406 | "babel-plugin-named-asset-import": "^0.3.6",
1407 | "babel-preset-react-app": "^9.1.2",
1408 | "camelcase": "^5.3.1",
1409 | "case-sensitive-paths-webpack-plugin": "2.3.0",
1410 | "css-loader": "3.4.2",
1411 | "dotenv": "8.2.0",
1412 | "dotenv-expand": "5.1.0",
1413 | "eslint": "^6.6.0",
1414 | "eslint-config-react-app": "^5.2.1",
1415 | "eslint-loader": "3.0.3",
1416 | "eslint-plugin-flowtype": "4.6.0",
1417 | "eslint-plugin-import": "2.20.1",
1418 | "eslint-plugin-jsx-a11y": "6.2.3",
1419 | "eslint-plugin-react": "7.19.0",
1420 | "eslint-plugin-react-hooks": "^1.6.1",
1421 | "file-loader": "4.3.0",
1422 | "fs-extra": "^8.1.0",
1423 | "fsevents": "2.1.2",
1424 | "html-webpack-plugin": "4.0.0-beta.11",
1425 | "identity-obj-proxy": "3.0.0",
1426 | "jest": "24.9.0",
1427 | "jest-environment-jsdom-fourteen": "1.0.1",
1428 | "jest-resolve": "24.9.0",
1429 | "jest-watch-typeahead": "0.4.2",
1430 | "mini-css-extract-plugin": "0.9.0",
1431 | "optimize-css-assets-webpack-plugin": "5.0.3",
1432 | "pnp-webpack-plugin": "1.6.4",
1433 | "postcss-flexbugs-fixes": "4.1.0",
1434 | "postcss-loader": "3.0.0",
1435 | "postcss-normalize": "8.0.1",
1436 | "postcss-preset-env": "6.7.0",
1437 | "postcss-safe-parser": "4.0.1",
1438 | "react-app-polyfill": "^1.0.6",
1439 | "react-dev-utils": "^10.2.1",
1440 | "resolve": "1.15.0",
1441 | "resolve-url-loader": "3.1.2",
1442 | "sass-loader": "8.0.2",
1443 | "semver": "6.3.0",
1444 | "style-loader": "0.23.1",
1445 | "terser-webpack-plugin": "2.3.8",
1446 | "ts-pnp": "1.1.6",
1447 | "url-loader": "2.3.0",
1448 | "webpack": "4.42.0",
1449 | "webpack-dev-server": "3.11.0",
1450 | "webpack-manifest-plugin": "2.2.0",
1451 | "workbox-webpack-plugin": "4.3.1"
1452 | }
1453 | }
1454 | }
1455 | },
1456 | "react-scripts": {
1457 | "version": "file:../node_modules/react-scripts",
1458 | "requires": {
1459 | "@babel/core": "7.9.0",
1460 | "@svgr/webpack": "4.3.3",
1461 | "@typescript-eslint/eslint-plugin": "^2.10.0",
1462 | "@typescript-eslint/parser": "^2.10.0",
1463 | "babel-eslint": "10.1.0",
1464 | "babel-jest": "^24.9.0",
1465 | "babel-loader": "8.1.0",
1466 | "babel-plugin-named-asset-import": "^0.3.6",
1467 | "babel-preset-react-app": "^9.1.2",
1468 | "camelcase": "^5.3.1",
1469 | "case-sensitive-paths-webpack-plugin": "2.3.0",
1470 | "css-loader": "3.4.2",
1471 | "dotenv": "8.2.0",
1472 | "dotenv-expand": "5.1.0",
1473 | "eslint": "^6.6.0",
1474 | "eslint-config-react-app": "^5.2.1",
1475 | "eslint-loader": "3.0.3",
1476 | "eslint-plugin-flowtype": "4.6.0",
1477 | "eslint-plugin-import": "2.20.1",
1478 | "eslint-plugin-jsx-a11y": "6.2.3",
1479 | "eslint-plugin-react": "7.19.0",
1480 | "eslint-plugin-react-hooks": "^1.6.1",
1481 | "file-loader": "4.3.0",
1482 | "fs-extra": "^8.1.0",
1483 | "fsevents": "2.1.2",
1484 | "html-webpack-plugin": "4.0.0-beta.11",
1485 | "identity-obj-proxy": "3.0.0",
1486 | "jest": "24.9.0",
1487 | "jest-environment-jsdom-fourteen": "1.0.1",
1488 | "jest-resolve": "24.9.0",
1489 | "jest-watch-typeahead": "0.4.2",
1490 | "mini-css-extract-plugin": "0.9.0",
1491 | "optimize-css-assets-webpack-plugin": "5.0.3",
1492 | "pnp-webpack-plugin": "1.6.4",
1493 | "postcss-flexbugs-fixes": "4.1.0",
1494 | "postcss-loader": "3.0.0",
1495 | "postcss-normalize": "8.0.1",
1496 | "postcss-preset-env": "6.7.0",
1497 | "postcss-safe-parser": "4.0.1",
1498 | "react-app-polyfill": "^1.0.6",
1499 | "react-dev-utils": "^10.2.1",
1500 | "resolve": "1.15.0",
1501 | "resolve-url-loader": "3.1.2",
1502 | "sass-loader": "8.0.2",
1503 | "semver": "6.3.0",
1504 | "style-loader": "0.23.1",
1505 | "terser-webpack-plugin": "2.3.8",
1506 | "ts-pnp": "1.1.6",
1507 | "url-loader": "2.3.0",
1508 | "webpack": "4.42.0",
1509 | "webpack-dev-server": "3.11.0",
1510 | "webpack-manifest-plugin": "2.2.0",
1511 | "workbox-webpack-plugin": "4.3.1"
1512 | }
1513 | },
1514 | "safe-buffer": {
1515 | "version": "5.1.2",
1516 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1517 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1518 | },
1519 | "semver": {
1520 | "version": "6.3.0",
1521 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1522 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1523 | "peer": true
1524 | },
1525 | "source-map": {
1526 | "version": "0.5.7",
1527 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1528 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1529 | "peer": true
1530 | },
1531 | "string-hash": {
1532 | "version": "1.1.3",
1533 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
1534 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs="
1535 | },
1536 | "styled-jsx": {
1537 | "version": "4.0.1",
1538 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-4.0.1.tgz",
1539 | "integrity": "sha512-Gcb49/dRB1k8B4hdK8vhW27Rlb2zujCk1fISrizCcToIs+55B4vmUM0N9Gi4nnVfFZWe55jRdWpAqH1ldAKWvQ==",
1540 | "requires": {
1541 | "@babel/plugin-syntax-jsx": "7.14.5",
1542 | "@babel/types": "7.15.0",
1543 | "convert-source-map": "1.7.0",
1544 | "loader-utils": "1.2.3",
1545 | "source-map": "0.7.3",
1546 | "string-hash": "1.1.3",
1547 | "stylis": "3.5.4",
1548 | "stylis-rule-sheet": "0.0.10"
1549 | },
1550 | "dependencies": {
1551 | "@babel/types": {
1552 | "version": "7.15.0",
1553 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
1554 | "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
1555 | "requires": {
1556 | "@babel/helper-validator-identifier": "^7.14.9",
1557 | "to-fast-properties": "^2.0.0"
1558 | }
1559 | },
1560 | "convert-source-map": {
1561 | "version": "1.7.0",
1562 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
1563 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
1564 | "requires": {
1565 | "safe-buffer": "~5.1.1"
1566 | }
1567 | },
1568 | "source-map": {
1569 | "version": "0.7.3",
1570 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
1571 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
1572 | }
1573 | }
1574 | },
1575 | "stylis": {
1576 | "version": "3.5.4",
1577 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz",
1578 | "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q=="
1579 | },
1580 | "stylis-rule-sheet": {
1581 | "version": "0.0.10",
1582 | "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
1583 | "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==",
1584 | "requires": {}
1585 | },
1586 | "supports-color": {
1587 | "version": "5.5.0",
1588 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1589 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1590 | "peer": true,
1591 | "requires": {
1592 | "has-flag": "^3.0.0"
1593 | }
1594 | },
1595 | "to-fast-properties": {
1596 | "version": "2.0.0",
1597 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1598 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
1599 | }
1600 | }
1601 | }
1602 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-js-stickynav-example",
3 | "homepage": ".",
4 | "version": "0.0.0",
5 | "private": true,
6 | "scripts": {
7 | "start": "node ../node_modules/react-scripts/bin/react-scripts.js start",
8 | "build": "node ../node_modules/react-scripts/bin/react-scripts.js build",
9 | "test": "node ../node_modules/react-scripts/bin/react-scripts.js test",
10 | "eject": "node ../node_modules/react-scripts/bin/react-scripts.js eject"
11 | },
12 | "dependencies": {
13 | "react": "file:../node_modules/react",
14 | "react-dom": "file:../node_modules/react-dom",
15 | "react-js-stickynav": "file:..",
16 | "react-scripts": "file:../node_modules/react-scripts",
17 | "styled-jsx": "^4.0.1"
18 | },
19 | "devDependencies": {
20 | "@babel/plugin-syntax-object-rest-spread": "^7.8.3"
21 | },
22 | "eslintConfig": {
23 | "extends": "react-app"
24 | },
25 | "browserslist": [
26 | ">0.2%",
27 | "not dead",
28 | "not ie <= 11",
29 | "not op_mini all"
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/example/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abodmicheal/react-js-stickynav/f1b5c5410ae96e7289e731ea14da6f649e0a08da/example/public/favicon.ico
--------------------------------------------------------------------------------
/example/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
16 |
17 |
18 |
27 | react-js-stickynav
28 |
29 |
30 |
31 |
32 | You need to enable JavaScript to run this app.
33 |
34 |
35 |
36 |
37 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/example/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "react-js-stickynav",
3 | "name": "react-js-stickynav",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/example/src/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import StickyNav from 'react-js-stickynav'
3 | import 'react-js-stickynav/dist/index.css'
4 |
5 | const App = () => {
6 | const style = () => {
7 | return (
8 |
26 | )
27 | }
28 | return (
29 |
30 | {style()}
31 |
insert your Navbar Component here
32 |
33 |
34 | Creating a Single-Page App in React using React Router by kirupa |
35 | filed under Learning React Now that you've familiarized yourself with
36 | the basics of how to work with React, let's kick things up a few
37 | notches. What we are going to do is use React to build a simple
38 | single-page app (also referred to as SPA by the cool kids...and people
39 | living in Scandinavia). Like we talked about in our React introduction
40 | forever ago, single-page apps are different from the more traditional
41 | multi-page apps that you see everywhere. The biggest difference is
42 | that navigating a single-page app doesn't involve going to an entirely
43 | new page. Instead, your pages (commonly known as views in this
44 | context) typically load inline within the same page itself: When you
45 | are loading content inline, things get a little challenging. The hard
46 | part is not loading the content itself. That is relatively easy. The
47 | hard part is making sure that single-page apps behave in a way that is
48 | consistent with what your users are used to. More specifically, when
49 | users navigate your app, they expect that: The URL displayed in the
50 | address bar always reflects the thing that they are viewing. They can
51 | use the browser's back and forward buttons...successfully. They can
52 | navigate to a particular view (aka deep link) directly using the
53 | appropriate URL. With multi-page apps, these three things come for
54 | free. There is nothing extra you have to do for any of it. With
55 | single-page apps, because you aren't navigating to an entirely new
56 | page, you have to do real work to deal with these three things that
57 | your users expect to just work. You need to ensure that navigating
58 | within your app adjusts the URL appropriately. You need to ensure your
59 | browser's history is properly synchronized with
60 |
61 |
62 | Creating a Single-Page App in React using React Router by kirupa |
63 | filed under Learning React Now that you've familiarized yourself with
64 | the basics of how to work with React, let's kick things up a few
65 | notches. What we are going to do is use React to build a simple
66 | single-page app (also referred to as SPA by the cool kids...and people
67 | living in Scandinavia). Like we talked about in our React introduction
68 | forever ago, single-page apps are different from the more traditional
69 | multi-page apps that you see everywhere. The biggest difference is
70 | that navigating a single-page app doesn't involve going to an entirely
71 | new page. Instead, your pages (commonly known as views in this
72 | context) typically load inline within the same page itself: When you
73 | are loading content inline, things get a little challenging. The hard
74 | part is not loading the content itself. That is relatively easy. The
75 | hard part is making sure that single-page apps behave in a way that is
76 | consistent with what your users are used to. More specifically, when
77 | users navigate your app, they expect that: The URL displayed in the
78 | address bar always reflects the thing that they are viewing. They can
79 | use the browser's back and forward buttons...successfully. They can
80 | navigate to a particular view (aka deep link) directly using the
81 | appropriate URL. With multi-page apps, these three things come for
82 | free. There is nothing extra you have to do for any of it. With
83 | single-page apps, because you aren't navigating to an entirely new
84 | page, you have to do real work to deal with these three things that
85 | your users expect to just work. You need to ensure that navigating
86 | within your app adjusts the URL appropriately. You need to ensure your
87 | browser's history is properly synchronized with
88 |
89 |
90 |
91 | )
92 | }
93 |
94 | export default App
95 |
--------------------------------------------------------------------------------
/example/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom'
3 | import App from './App'
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div')
7 | ReactDOM.render( , div)
8 | ReactDOM.unmountComponentAtNode(div)
9 | })
10 |
--------------------------------------------------------------------------------
/example/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
5 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
13 | monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/example/src/index.js:
--------------------------------------------------------------------------------
1 | import './index.css'
2 |
3 | import React from 'react'
4 | import ReactDOM from 'react-dom'
5 | import App from './App'
6 |
7 | ReactDOM.render( , document.getElementById('root'))
8 |
--------------------------------------------------------------------------------
/example/y:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-js-stickynav",
3 | "version": "1.0.2",
4 | "description": "a simple reactjs nav bar onscroll",
5 | "author": "abodmicheal",
6 | "license": "MIT",
7 | "repository": "https://github.com/abodmicheal/react-js-stickynav",
8 | "main": "dist/index.js",
9 | "module": "dist/index.modern.js",
10 | "source": "src/index.js",
11 | "engines": {
12 | "node": ">=10"
13 | },
14 | "keywords": [
15 | "react",
16 | "react onsroll nav bar",
17 | "onscroll",
18 | "react nav",
19 | "nav bar",
20 | "onscroll nav",
21 | "onscroll bar",
22 | "nav",
23 | "react nav",
24 | "react nav bar",
25 | "react bar",
26 | "navigation bar",
27 | "navigation",
28 | "react navigation bar",
29 | "react js navigation bar"
30 | ],
31 | "scripts": {
32 | "build": "microbundle-crl --no-compress --format modern,cjs",
33 | "start": "microbundle-crl watch --no-compress --format modern,cjs",
34 | "prepare": "run-s build",
35 | "test": "run-s test:unit test:lint test:build",
36 | "test:build": "run-s build",
37 | "test:lint": "eslint .",
38 | "test:unit": "cross-env CI=1 react-scripts test --env=jsdom",
39 | "test:watch": "react-scripts test --env=jsdom",
40 | "predeploy": "cd example && npm install && npm run build",
41 | "deploy": "gh-pages -d example/build"
42 | },
43 | "peerDependencies": {
44 | "react": "^17.0.2",
45 | "react-dom": "^17.0.2",
46 | "styled-jsx": "^4.0.1"
47 | },
48 | "devDependencies": {
49 | "babel-eslint": "^10.0.3",
50 | "cross-env": "^7.0.2",
51 | "eslint": "^6.8.0",
52 | "eslint-config-prettier": "^6.7.0",
53 | "eslint-config-standard": "^14.1.0",
54 | "eslint-config-standard-react": "^9.2.0",
55 | "eslint-plugin-import": "^2.18.2",
56 | "eslint-plugin-node": "^11.0.0",
57 | "eslint-plugin-prettier": "^3.1.1",
58 | "eslint-plugin-promise": "^4.2.1",
59 | "eslint-plugin-react": "^7.17.0",
60 | "eslint-plugin-standard": "^4.0.1",
61 | "gh-pages": "^2.2.0",
62 | "microbundle-crl": "^0.13.10",
63 | "npm-run-all": "^4.1.5",
64 | "prettier": "^2.0.4",
65 | "react": "^17.0.2",
66 | "react-dom": "^17.0.2",
67 | "react-scripts": "^3.4.1",
68 | "styled-jsx": "^4.0.1"
69 | },
70 | "files": [
71 | "dist"
72 | ],
73 | "dependencies": {
74 | "styled-jsx": "^4.0.1"
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/control.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { StickyNav } from './index'
3 |
4 | export const Conrol = ({ length, children , nav , nav__scroll }) => {
5 | return (
6 |
7 |
8 |
9 | )
10 | }
11 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from 'react'
2 | import styles from './styles.module.css'
3 |
4 | const StickyNav = (props) => {
5 | const [nav, setNav] = useState(false)
6 |
7 | useEffect(() => {
8 | window.addEventListener('scroll', handleScroll)
9 | });
10 |
11 | const handleScroll = () => {
12 | window.pageYOffset > props.length ? !nav && setNav(true) : nav && setNav(false)
13 | }
14 |
15 | return (
16 |
17 |
18 | {props.children}
19 |
20 |
21 | )
22 | }
23 |
24 | export default StickyNav;
25 |
--------------------------------------------------------------------------------
/src/index.test.js:
--------------------------------------------------------------------------------
1 | import { ExampleComponent } from '.'
2 |
3 | describe('ExampleComponent', () => {
4 | it('is truthy', () => {
5 | expect(ExampleComponent).toBeTruthy()
6 | })
7 | })
8 |
--------------------------------------------------------------------------------
/src/styles.module.css:
--------------------------------------------------------------------------------
1 | /* add css module styles here (optional) */
2 | * {
3 | margin: 0;
4 | padding: 0;
5 | box-sizing: border-box;
6 | }
7 |
--------------------------------------------------------------------------------
/sticky logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abodmicheal/react-js-stickynav/f1b5c5410ae96e7289e731ea14da6f649e0a08da/sticky logo.png
--------------------------------------------------------------------------------