├── .github
└── workflows
│ └── publish-to-npm.yml
├── .gitignore
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
├── rollup.config.mjs
├── src
├── HoverImage.tsx
└── index.ts
└── tsconfig.json
/.github/workflows/publish-to-npm.yml:
--------------------------------------------------------------------------------
1 | name: publish-npm
2 |
3 | on:
4 | release:
5 | types: [published]
6 | workflow_dispatch:
7 |
8 | jobs:
9 | publish-npm:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v3
13 | - uses: actions/setup-node@v3
14 | with:
15 | node-version: 18
16 | registry-url: https://registry.npmjs.org
17 | - run: npm ci && npm run build
18 | - run: npm publish --access=public
19 | env:
20 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /es
2 | /lib
3 | /node_modules
4 | /umd
5 | npm-debug.log*
6 | .vscode
7 | .DS_Store
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Mau Joost
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 | # rollup-react-starter-lib-ts
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Template to create your own Typescript React library with Rollup.
16 |
17 | - Rollup v3 :tada:
18 | - Compatible with new and old React versions, generates ESM/CJS files.
19 |
20 | ## Build & Publish
21 |
22 | You can use this template and
23 | change the name under package.json.
24 |
25 | Build
26 |
27 | ```
28 | npm run build
29 | ```
30 |
31 | Build & Watch
32 |
33 | ```
34 | npm run build:watch
35 | ```
36 |
37 | Publish (public library)
38 |
39 | Be sure you are either logged in under `npm login` or you have a token (check https://docs.npmjs.com/creating-and-viewing-access-tokens).
40 |
41 | ```
42 | npm run publish --access=public
43 | ```
44 |
45 | ## For local testing
46 |
47 | cd your-lib-folder/
48 |
49 | ```
50 | npm link
51 | ```
52 |
53 | cd your-app/
54 |
55 | ```
56 | npm link name-of-your-lib
57 | ```
58 |
59 | ### Want to also minify bundle output?
60 |
61 | You can install rollup-plugin-terser (still works with rollup v3, but since it has no updates, we need to install it with legacy peer options)
62 |
63 | ```
64 | npm i rollup-plugin-terser --save-dev --legacy-peer-deps
65 | ```
66 |
67 | #### Configure
68 |
69 | rollup.config.mjs
70 |
71 | ``` javascript
72 | import { terser } from 'rollup-plugin-terser';
73 |
74 | ...
75 |
76 | plugins: [
77 | peerDepsExternal(),
78 | resolve(),
79 | commonjs(),
80 | typescript({ tsconfig: "./tsconfig.json" }),
81 | terser(), // we add it here
82 | ]
83 |
84 |
85 |
86 | ```
87 |
88 |
89 | [npm-badge]: https://img.shields.io/npm/v/rollup-react-starter-lib-ts.svg
90 | [npm]: https://www.npmjs.org/package/rollup-react-starter-lib-ts
91 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rollup-react-starter-lib-ts",
3 | "version": "1.0.4",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "rollup-react-starter-lib-ts",
9 | "version": "1.0.4",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "@rollup/plugin-commonjs": "^23.0.2",
13 | "@rollup/plugin-node-resolve": "^15.0.1",
14 | "@rollup/plugin-typescript": "^9.0.2",
15 | "@types/react": "^18.0.21",
16 | "@types/react-dom": "^18.0.6",
17 | "react": "^18.2.0",
18 | "react-dom": "^18.2.0",
19 | "rollup": "^3.2.3",
20 | "rollup-plugin-peer-deps-external": "^2.2.4",
21 | "typescript": "^4.8.4"
22 | },
23 | "peerDependencies": {
24 | "react": "^16 || ^17 || ^18",
25 | "react-dom": "^16 || ^17 || ^18"
26 | }
27 | },
28 | "node_modules/@rollup/plugin-commonjs": {
29 | "version": "23.0.2",
30 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz",
31 | "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==",
32 | "dev": true,
33 | "dependencies": {
34 | "@rollup/pluginutils": "^5.0.1",
35 | "commondir": "^1.0.1",
36 | "estree-walker": "^2.0.2",
37 | "glob": "^8.0.3",
38 | "is-reference": "1.2.1",
39 | "magic-string": "^0.26.4"
40 | },
41 | "engines": {
42 | "node": ">=14.0.0"
43 | },
44 | "peerDependencies": {
45 | "rollup": "^2.68.0||^3.0.0"
46 | },
47 | "peerDependenciesMeta": {
48 | "rollup": {
49 | "optional": true
50 | }
51 | }
52 | },
53 | "node_modules/@rollup/plugin-node-resolve": {
54 | "version": "15.0.1",
55 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz",
56 | "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==",
57 | "dev": true,
58 | "dependencies": {
59 | "@rollup/pluginutils": "^5.0.1",
60 | "@types/resolve": "1.20.2",
61 | "deepmerge": "^4.2.2",
62 | "is-builtin-module": "^3.2.0",
63 | "is-module": "^1.0.0",
64 | "resolve": "^1.22.1"
65 | },
66 | "engines": {
67 | "node": ">=14.0.0"
68 | },
69 | "peerDependencies": {
70 | "rollup": "^2.78.0||^3.0.0"
71 | },
72 | "peerDependenciesMeta": {
73 | "rollup": {
74 | "optional": true
75 | }
76 | }
77 | },
78 | "node_modules/@rollup/plugin-typescript": {
79 | "version": "9.0.2",
80 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-9.0.2.tgz",
81 | "integrity": "sha512-/sS93vmHUMjzDUsl5scNQr1mUlNE1QjBBvOhmRwJCH8k2RRhDIm3c977B3wdu3t3Ap17W6dDeXP3hj1P1Un1bA==",
82 | "dev": true,
83 | "dependencies": {
84 | "@rollup/pluginutils": "^5.0.1",
85 | "resolve": "^1.22.1"
86 | },
87 | "engines": {
88 | "node": ">=14.0.0"
89 | },
90 | "peerDependencies": {
91 | "rollup": "^2.14.0||^3.0.0",
92 | "tslib": "*",
93 | "typescript": ">=3.7.0"
94 | },
95 | "peerDependenciesMeta": {
96 | "rollup": {
97 | "optional": true
98 | },
99 | "tslib": {
100 | "optional": true
101 | }
102 | }
103 | },
104 | "node_modules/@rollup/pluginutils": {
105 | "version": "5.0.2",
106 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
107 | "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
108 | "dev": true,
109 | "dependencies": {
110 | "@types/estree": "^1.0.0",
111 | "estree-walker": "^2.0.2",
112 | "picomatch": "^2.3.1"
113 | },
114 | "engines": {
115 | "node": ">=14.0.0"
116 | },
117 | "peerDependencies": {
118 | "rollup": "^1.20.0||^2.0.0||^3.0.0"
119 | },
120 | "peerDependenciesMeta": {
121 | "rollup": {
122 | "optional": true
123 | }
124 | }
125 | },
126 | "node_modules/@types/estree": {
127 | "version": "1.0.0",
128 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
129 | "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==",
130 | "dev": true
131 | },
132 | "node_modules/@types/prop-types": {
133 | "version": "15.7.5",
134 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
135 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
136 | "dev": true
137 | },
138 | "node_modules/@types/react": {
139 | "version": "18.0.21",
140 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
141 | "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
142 | "dev": true,
143 | "dependencies": {
144 | "@types/prop-types": "*",
145 | "@types/scheduler": "*",
146 | "csstype": "^3.0.2"
147 | }
148 | },
149 | "node_modules/@types/react-dom": {
150 | "version": "18.0.6",
151 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
152 | "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
153 | "dev": true,
154 | "dependencies": {
155 | "@types/react": "*"
156 | }
157 | },
158 | "node_modules/@types/resolve": {
159 | "version": "1.20.2",
160 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
161 | "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
162 | "dev": true
163 | },
164 | "node_modules/@types/scheduler": {
165 | "version": "0.16.2",
166 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
167 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
168 | "dev": true
169 | },
170 | "node_modules/balanced-match": {
171 | "version": "1.0.2",
172 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
173 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
174 | "dev": true
175 | },
176 | "node_modules/brace-expansion": {
177 | "version": "2.0.1",
178 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
179 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
180 | "dev": true,
181 | "dependencies": {
182 | "balanced-match": "^1.0.0"
183 | }
184 | },
185 | "node_modules/builtin-modules": {
186 | "version": "3.3.0",
187 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
188 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
189 | "dev": true,
190 | "engines": {
191 | "node": ">=6"
192 | },
193 | "funding": {
194 | "url": "https://github.com/sponsors/sindresorhus"
195 | }
196 | },
197 | "node_modules/commondir": {
198 | "version": "1.0.1",
199 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
200 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
201 | "dev": true
202 | },
203 | "node_modules/csstype": {
204 | "version": "3.1.1",
205 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
206 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==",
207 | "dev": true
208 | },
209 | "node_modules/deepmerge": {
210 | "version": "4.2.2",
211 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
212 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
213 | "dev": true,
214 | "engines": {
215 | "node": ">=0.10.0"
216 | }
217 | },
218 | "node_modules/estree-walker": {
219 | "version": "2.0.2",
220 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
221 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
222 | "dev": true
223 | },
224 | "node_modules/fs.realpath": {
225 | "version": "1.0.0",
226 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
227 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
228 | "dev": true
229 | },
230 | "node_modules/fsevents": {
231 | "version": "2.3.2",
232 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
233 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
234 | "dev": true,
235 | "hasInstallScript": true,
236 | "optional": true,
237 | "os": [
238 | "darwin"
239 | ],
240 | "engines": {
241 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
242 | }
243 | },
244 | "node_modules/function-bind": {
245 | "version": "1.1.1",
246 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
247 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
248 | "dev": true
249 | },
250 | "node_modules/glob": {
251 | "version": "8.0.3",
252 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
253 | "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
254 | "dev": true,
255 | "dependencies": {
256 | "fs.realpath": "^1.0.0",
257 | "inflight": "^1.0.4",
258 | "inherits": "2",
259 | "minimatch": "^5.0.1",
260 | "once": "^1.3.0"
261 | },
262 | "engines": {
263 | "node": ">=12"
264 | },
265 | "funding": {
266 | "url": "https://github.com/sponsors/isaacs"
267 | }
268 | },
269 | "node_modules/has": {
270 | "version": "1.0.3",
271 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
272 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
273 | "dev": true,
274 | "dependencies": {
275 | "function-bind": "^1.1.1"
276 | },
277 | "engines": {
278 | "node": ">= 0.4.0"
279 | }
280 | },
281 | "node_modules/inflight": {
282 | "version": "1.0.6",
283 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
284 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
285 | "dev": true,
286 | "dependencies": {
287 | "once": "^1.3.0",
288 | "wrappy": "1"
289 | }
290 | },
291 | "node_modules/inherits": {
292 | "version": "2.0.4",
293 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
294 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
295 | "dev": true
296 | },
297 | "node_modules/is-builtin-module": {
298 | "version": "3.2.0",
299 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
300 | "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
301 | "dev": true,
302 | "dependencies": {
303 | "builtin-modules": "^3.3.0"
304 | },
305 | "engines": {
306 | "node": ">=6"
307 | },
308 | "funding": {
309 | "url": "https://github.com/sponsors/sindresorhus"
310 | }
311 | },
312 | "node_modules/is-core-module": {
313 | "version": "2.11.0",
314 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
315 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
316 | "dev": true,
317 | "dependencies": {
318 | "has": "^1.0.3"
319 | },
320 | "funding": {
321 | "url": "https://github.com/sponsors/ljharb"
322 | }
323 | },
324 | "node_modules/is-module": {
325 | "version": "1.0.0",
326 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
327 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
328 | "dev": true
329 | },
330 | "node_modules/is-reference": {
331 | "version": "1.2.1",
332 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
333 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
334 | "dev": true,
335 | "dependencies": {
336 | "@types/estree": "*"
337 | }
338 | },
339 | "node_modules/js-tokens": {
340 | "version": "4.0.0",
341 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
342 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
343 | "dev": true
344 | },
345 | "node_modules/loose-envify": {
346 | "version": "1.4.0",
347 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
348 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
349 | "dev": true,
350 | "dependencies": {
351 | "js-tokens": "^3.0.0 || ^4.0.0"
352 | },
353 | "bin": {
354 | "loose-envify": "cli.js"
355 | }
356 | },
357 | "node_modules/magic-string": {
358 | "version": "0.26.7",
359 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz",
360 | "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==",
361 | "dev": true,
362 | "dependencies": {
363 | "sourcemap-codec": "^1.4.8"
364 | },
365 | "engines": {
366 | "node": ">=12"
367 | }
368 | },
369 | "node_modules/minimatch": {
370 | "version": "5.1.0",
371 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
372 | "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
373 | "dev": true,
374 | "dependencies": {
375 | "brace-expansion": "^2.0.1"
376 | },
377 | "engines": {
378 | "node": ">=10"
379 | }
380 | },
381 | "node_modules/once": {
382 | "version": "1.4.0",
383 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
384 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
385 | "dev": true,
386 | "dependencies": {
387 | "wrappy": "1"
388 | }
389 | },
390 | "node_modules/path-parse": {
391 | "version": "1.0.7",
392 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
393 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
394 | "dev": true
395 | },
396 | "node_modules/picomatch": {
397 | "version": "2.3.1",
398 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
399 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
400 | "dev": true,
401 | "engines": {
402 | "node": ">=8.6"
403 | },
404 | "funding": {
405 | "url": "https://github.com/sponsors/jonschlinkert"
406 | }
407 | },
408 | "node_modules/react": {
409 | "version": "18.2.0",
410 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
411 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
412 | "dev": true,
413 | "dependencies": {
414 | "loose-envify": "^1.1.0"
415 | },
416 | "engines": {
417 | "node": ">=0.10.0"
418 | }
419 | },
420 | "node_modules/react-dom": {
421 | "version": "18.2.0",
422 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
423 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
424 | "dev": true,
425 | "dependencies": {
426 | "loose-envify": "^1.1.0",
427 | "scheduler": "^0.23.0"
428 | },
429 | "peerDependencies": {
430 | "react": "^18.2.0"
431 | }
432 | },
433 | "node_modules/resolve": {
434 | "version": "1.22.1",
435 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
436 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
437 | "dev": true,
438 | "dependencies": {
439 | "is-core-module": "^2.9.0",
440 | "path-parse": "^1.0.7",
441 | "supports-preserve-symlinks-flag": "^1.0.0"
442 | },
443 | "bin": {
444 | "resolve": "bin/resolve"
445 | },
446 | "funding": {
447 | "url": "https://github.com/sponsors/ljharb"
448 | }
449 | },
450 | "node_modules/rollup": {
451 | "version": "3.2.3",
452 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.3.tgz",
453 | "integrity": "sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==",
454 | "dev": true,
455 | "bin": {
456 | "rollup": "dist/bin/rollup"
457 | },
458 | "engines": {
459 | "node": ">=14.18.0",
460 | "npm": ">=8.0.0"
461 | },
462 | "optionalDependencies": {
463 | "fsevents": "~2.3.2"
464 | }
465 | },
466 | "node_modules/rollup-plugin-peer-deps-external": {
467 | "version": "2.2.4",
468 | "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz",
469 | "integrity": "sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==",
470 | "dev": true,
471 | "peerDependencies": {
472 | "rollup": "*"
473 | }
474 | },
475 | "node_modules/scheduler": {
476 | "version": "0.23.0",
477 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
478 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
479 | "dev": true,
480 | "dependencies": {
481 | "loose-envify": "^1.1.0"
482 | }
483 | },
484 | "node_modules/sourcemap-codec": {
485 | "version": "1.4.8",
486 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
487 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
488 | "dev": true
489 | },
490 | "node_modules/supports-preserve-symlinks-flag": {
491 | "version": "1.0.0",
492 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
493 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
494 | "dev": true,
495 | "engines": {
496 | "node": ">= 0.4"
497 | },
498 | "funding": {
499 | "url": "https://github.com/sponsors/ljharb"
500 | }
501 | },
502 | "node_modules/tslib": {
503 | "version": "2.4.0",
504 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
505 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
506 | "dev": true,
507 | "optional": true,
508 | "peer": true
509 | },
510 | "node_modules/typescript": {
511 | "version": "4.8.4",
512 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
513 | "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
514 | "dev": true,
515 | "bin": {
516 | "tsc": "bin/tsc",
517 | "tsserver": "bin/tsserver"
518 | },
519 | "engines": {
520 | "node": ">=4.2.0"
521 | }
522 | },
523 | "node_modules/wrappy": {
524 | "version": "1.0.2",
525 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
526 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
527 | "dev": true
528 | }
529 | },
530 | "dependencies": {
531 | "@rollup/plugin-commonjs": {
532 | "version": "23.0.2",
533 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz",
534 | "integrity": "sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==",
535 | "dev": true,
536 | "requires": {
537 | "@rollup/pluginutils": "^5.0.1",
538 | "commondir": "^1.0.1",
539 | "estree-walker": "^2.0.2",
540 | "glob": "^8.0.3",
541 | "is-reference": "1.2.1",
542 | "magic-string": "^0.26.4"
543 | }
544 | },
545 | "@rollup/plugin-node-resolve": {
546 | "version": "15.0.1",
547 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz",
548 | "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==",
549 | "dev": true,
550 | "requires": {
551 | "@rollup/pluginutils": "^5.0.1",
552 | "@types/resolve": "1.20.2",
553 | "deepmerge": "^4.2.2",
554 | "is-builtin-module": "^3.2.0",
555 | "is-module": "^1.0.0",
556 | "resolve": "^1.22.1"
557 | }
558 | },
559 | "@rollup/plugin-typescript": {
560 | "version": "9.0.2",
561 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-9.0.2.tgz",
562 | "integrity": "sha512-/sS93vmHUMjzDUsl5scNQr1mUlNE1QjBBvOhmRwJCH8k2RRhDIm3c977B3wdu3t3Ap17W6dDeXP3hj1P1Un1bA==",
563 | "dev": true,
564 | "requires": {
565 | "@rollup/pluginutils": "^5.0.1",
566 | "resolve": "^1.22.1"
567 | }
568 | },
569 | "@rollup/pluginutils": {
570 | "version": "5.0.2",
571 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz",
572 | "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==",
573 | "dev": true,
574 | "requires": {
575 | "@types/estree": "^1.0.0",
576 | "estree-walker": "^2.0.2",
577 | "picomatch": "^2.3.1"
578 | }
579 | },
580 | "@types/estree": {
581 | "version": "1.0.0",
582 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
583 | "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==",
584 | "dev": true
585 | },
586 | "@types/prop-types": {
587 | "version": "15.7.5",
588 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
589 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
590 | "dev": true
591 | },
592 | "@types/react": {
593 | "version": "18.0.21",
594 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
595 | "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
596 | "dev": true,
597 | "requires": {
598 | "@types/prop-types": "*",
599 | "@types/scheduler": "*",
600 | "csstype": "^3.0.2"
601 | }
602 | },
603 | "@types/react-dom": {
604 | "version": "18.0.6",
605 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
606 | "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
607 | "dev": true,
608 | "requires": {
609 | "@types/react": "*"
610 | }
611 | },
612 | "@types/resolve": {
613 | "version": "1.20.2",
614 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
615 | "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
616 | "dev": true
617 | },
618 | "@types/scheduler": {
619 | "version": "0.16.2",
620 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
621 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
622 | "dev": true
623 | },
624 | "balanced-match": {
625 | "version": "1.0.2",
626 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
627 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
628 | "dev": true
629 | },
630 | "brace-expansion": {
631 | "version": "2.0.1",
632 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
633 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
634 | "dev": true,
635 | "requires": {
636 | "balanced-match": "^1.0.0"
637 | }
638 | },
639 | "builtin-modules": {
640 | "version": "3.3.0",
641 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
642 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
643 | "dev": true
644 | },
645 | "commondir": {
646 | "version": "1.0.1",
647 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
648 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
649 | "dev": true
650 | },
651 | "csstype": {
652 | "version": "3.1.1",
653 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
654 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==",
655 | "dev": true
656 | },
657 | "deepmerge": {
658 | "version": "4.2.2",
659 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
660 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
661 | "dev": true
662 | },
663 | "estree-walker": {
664 | "version": "2.0.2",
665 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
666 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
667 | "dev": true
668 | },
669 | "fs.realpath": {
670 | "version": "1.0.0",
671 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
672 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
673 | "dev": true
674 | },
675 | "fsevents": {
676 | "version": "2.3.2",
677 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
678 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
679 | "dev": true,
680 | "optional": true
681 | },
682 | "function-bind": {
683 | "version": "1.1.1",
684 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
685 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
686 | "dev": true
687 | },
688 | "glob": {
689 | "version": "8.0.3",
690 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz",
691 | "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==",
692 | "dev": true,
693 | "requires": {
694 | "fs.realpath": "^1.0.0",
695 | "inflight": "^1.0.4",
696 | "inherits": "2",
697 | "minimatch": "^5.0.1",
698 | "once": "^1.3.0"
699 | }
700 | },
701 | "has": {
702 | "version": "1.0.3",
703 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
704 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
705 | "dev": true,
706 | "requires": {
707 | "function-bind": "^1.1.1"
708 | }
709 | },
710 | "inflight": {
711 | "version": "1.0.6",
712 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
713 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
714 | "dev": true,
715 | "requires": {
716 | "once": "^1.3.0",
717 | "wrappy": "1"
718 | }
719 | },
720 | "inherits": {
721 | "version": "2.0.4",
722 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
723 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
724 | "dev": true
725 | },
726 | "is-builtin-module": {
727 | "version": "3.2.0",
728 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
729 | "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
730 | "dev": true,
731 | "requires": {
732 | "builtin-modules": "^3.3.0"
733 | }
734 | },
735 | "is-core-module": {
736 | "version": "2.11.0",
737 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
738 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
739 | "dev": true,
740 | "requires": {
741 | "has": "^1.0.3"
742 | }
743 | },
744 | "is-module": {
745 | "version": "1.0.0",
746 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
747 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
748 | "dev": true
749 | },
750 | "is-reference": {
751 | "version": "1.2.1",
752 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
753 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
754 | "dev": true,
755 | "requires": {
756 | "@types/estree": "*"
757 | }
758 | },
759 | "js-tokens": {
760 | "version": "4.0.0",
761 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
762 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
763 | "dev": true
764 | },
765 | "loose-envify": {
766 | "version": "1.4.0",
767 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
768 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
769 | "dev": true,
770 | "requires": {
771 | "js-tokens": "^3.0.0 || ^4.0.0"
772 | }
773 | },
774 | "magic-string": {
775 | "version": "0.26.7",
776 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz",
777 | "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==",
778 | "dev": true,
779 | "requires": {
780 | "sourcemap-codec": "^1.4.8"
781 | }
782 | },
783 | "minimatch": {
784 | "version": "5.1.0",
785 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
786 | "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
787 | "dev": true,
788 | "requires": {
789 | "brace-expansion": "^2.0.1"
790 | }
791 | },
792 | "once": {
793 | "version": "1.4.0",
794 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
795 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
796 | "dev": true,
797 | "requires": {
798 | "wrappy": "1"
799 | }
800 | },
801 | "path-parse": {
802 | "version": "1.0.7",
803 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
804 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
805 | "dev": true
806 | },
807 | "picomatch": {
808 | "version": "2.3.1",
809 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
810 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
811 | "dev": true
812 | },
813 | "react": {
814 | "version": "18.2.0",
815 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
816 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
817 | "dev": true,
818 | "requires": {
819 | "loose-envify": "^1.1.0"
820 | }
821 | },
822 | "react-dom": {
823 | "version": "18.2.0",
824 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
825 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
826 | "dev": true,
827 | "requires": {
828 | "loose-envify": "^1.1.0",
829 | "scheduler": "^0.23.0"
830 | }
831 | },
832 | "resolve": {
833 | "version": "1.22.1",
834 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
835 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
836 | "dev": true,
837 | "requires": {
838 | "is-core-module": "^2.9.0",
839 | "path-parse": "^1.0.7",
840 | "supports-preserve-symlinks-flag": "^1.0.0"
841 | }
842 | },
843 | "rollup": {
844 | "version": "3.2.3",
845 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.3.tgz",
846 | "integrity": "sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==",
847 | "dev": true,
848 | "requires": {
849 | "fsevents": "~2.3.2"
850 | }
851 | },
852 | "rollup-plugin-peer-deps-external": {
853 | "version": "2.2.4",
854 | "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz",
855 | "integrity": "sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==",
856 | "dev": true,
857 | "requires": {}
858 | },
859 | "scheduler": {
860 | "version": "0.23.0",
861 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
862 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
863 | "dev": true,
864 | "requires": {
865 | "loose-envify": "^1.1.0"
866 | }
867 | },
868 | "sourcemap-codec": {
869 | "version": "1.4.8",
870 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
871 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
872 | "dev": true
873 | },
874 | "supports-preserve-symlinks-flag": {
875 | "version": "1.0.0",
876 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
877 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
878 | "dev": true
879 | },
880 | "tslib": {
881 | "version": "2.4.0",
882 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
883 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
884 | "dev": true,
885 | "optional": true,
886 | "peer": true
887 | },
888 | "typescript": {
889 | "version": "4.8.4",
890 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
891 | "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
892 | "dev": true
893 | },
894 | "wrappy": {
895 | "version": "1.0.2",
896 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
897 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
898 | "dev": true
899 | }
900 | }
901 | }
902 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rollup-react-starter-lib-ts",
3 | "version": "1.0.4",
4 | "description": "Rolllup template for creating your react/typescript library",
5 | "main": "./lib/cjs/index.js",
6 | "module": "./lib/esm/index.js",
7 | "types": "./lib/esm/index.d.ts",
8 | "files": [
9 | "/lib"
10 | ],
11 | "scripts": {
12 | "build": "rollup -c",
13 | "build:watch": "rollup -c --watch"
14 | },
15 | "devDependencies": {
16 | "@rollup/plugin-commonjs": "^23.0.2",
17 | "@rollup/plugin-node-resolve": "^15.0.1",
18 | "@rollup/plugin-typescript": "^9.0.2",
19 | "@types/react": "^18.0.21",
20 | "@types/react-dom": "^18.0.6",
21 | "react": "^18.2.0",
22 | "react-dom": "^18.2.0",
23 | "rollup": "^3.2.3",
24 | "rollup-plugin-peer-deps-external": "^2.2.4",
25 | "typescript": "^4.8.4"
26 | },
27 | "repository": {
28 | "type": "git",
29 | "url": "https://github.com/thiswallz/rollup-react-starter-lib-ts"
30 | },
31 | "author": "Mau BJW",
32 | "license": "MIT",
33 | "keywords": [
34 | "react-template",
35 | "react-library",
36 | "typescript",
37 | "react",
38 | "template"
39 | ],
40 | "peerDependencies": {
41 | "react": "^16 || ^17 || ^18",
42 | "react-dom": "^16 || ^17 || ^18"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/rollup.config.mjs:
--------------------------------------------------------------------------------
1 | import commonjs from "@rollup/plugin-commonjs";
2 | import resolve from "@rollup/plugin-node-resolve";
3 | import typescript from "@rollup/plugin-typescript";
4 | import peerDepsExternal from 'rollup-plugin-peer-deps-external';
5 |
6 | import pkg from './package.json' assert { type: 'json' };
7 |
8 | export default [
9 | {
10 | input: "src/index.ts",
11 | output: [
12 | {
13 | file: pkg.main,
14 | format: "cjs",
15 | sourcemap: true,
16 | },
17 | {
18 | file: pkg.module,
19 | format: "esm",
20 | sourcemap: true,
21 | },
22 | ],
23 | plugins: [
24 | peerDepsExternal(),
25 | resolve(),
26 | commonjs(),
27 | typescript({ tsconfig: "./tsconfig.json" }),
28 | ],
29 | }
30 | ];
--------------------------------------------------------------------------------
/src/HoverImage.tsx:
--------------------------------------------------------------------------------
1 | import React, { CSSProperties } from "react";
2 |
3 | type HoverImageProps = {
4 | src: string;
5 | alt: string;
6 | className: string;
7 | style: CSSProperties;
8 | };
9 |
10 | export default function HoverImage({
11 | src,
12 | alt,
13 | style,
14 | className
15 | }: HoverImageProps) {
16 |
17 | return (
18 |
24 |

31 |
32 | );
33 | }
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export { default as HoverImage } from "./HoverImage";
2 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
4 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
5 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
6 | "strict": true, /* Enable all strict type-checking options. */
7 | "skipLibCheck": true /* Skip type checking all .d.ts files. */,
8 | "jsx": "react",
9 | "module": "ESNext",
10 | "declaration": true,
11 | "declarationDir": "lib",
12 | "sourceMap": true,
13 | "outDir": "lib",
14 | "moduleResolution": "node",
15 | "allowSyntheticDefaultImports": true,
16 | "emitDeclarationOnly": true,
17 | }
18 | }
19 |
--------------------------------------------------------------------------------