├── .editorconfig
├── .gitattributes
├── .github
├── FUNDING.yml
└── workflows
│ └── build.yml
├── .gitignore
├── .npmignore
├── .nvmrc
├── .postcssrc.json
├── .prettierignore
├── .prettierrc
├── .stylelintrc
├── .travis.yml
├── .whitesource
├── CHANGELOG.md
├── LICENSE
├── README.md
├── _.config.yml
├── __tests__
├── __snapshots__
│ └── index.tsx.snap
└── index.tsx
├── _config.yml
├── demo
├── .babelrc
├── index.html
├── index.tsx
├── mocks.tsx
├── package.json
└── yarn.lock
├── eslint.config.mjs
├── package.json
├── renovate.json
├── screenshot.png
├── src
├── index.css
└── index.tsx
├── tsconfig-lint.json
├── tsconfig.json
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | end_of_line = lf
7 | indent_style = tab
8 | indent_size = 4
9 | insert_final_newline = true
10 | trim_trailing_whitespace = true
11 |
12 | [{*.json,*.yml}]
13 | indent_style = space
14 | indent_size = 2
15 |
16 | [*.md]
17 | trim_trailing_whitespace = false
18 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ## GITATTRIBUTES FOR WEB PROJECTS
2 | #
3 | # These settings are for any web project.
4 | #
5 | # Details per file setting:
6 | # text These files should be normalized (i.e. convert CRLF to LF).
7 | # binary These files are binary and should be left untouched.
8 | #
9 | # Note that binary is a macro for -text -diff.
10 | ######################################################################
11 |
12 | ## AUTO-DETECT
13 | ## Handle line endings automatically for files detected as
14 | ## text and leave all files detected as binary untouched.
15 | ## This will handle all files NOT defined below.
16 | * text=auto
17 |
18 | ## SOURCE CODE
19 | *.bat text eol=crlf
20 | *.coffee text
21 | *.css text
22 | *.htm text
23 | *.html text
24 | *.inc text
25 | *.ini text
26 | *.js text
27 | *.json text
28 | *.jsx text
29 | *.less text
30 | *.od text
31 | *.onlydata text
32 | *.php text
33 | *.pl text
34 | *.py text
35 | *.rb text
36 | *.sass text
37 | *.scm text
38 | *.scss text
39 | *.sh text eol=lf
40 | *.sql text
41 | *.styl text
42 | *.tag text
43 | *.ts text
44 | *.tsx text
45 | *.xml text
46 | *.xhtml text
47 |
48 | ## DOCKER
49 | *.dockerignore text
50 | Dockerfile text
51 |
52 | ## DOCUMENTATION
53 | *.markdown text
54 | *.md text
55 | *.mdwn text
56 | *.mdown text
57 | *.mkd text
58 | *.mkdn text
59 | *.mdtxt text
60 | *.mdtext text
61 | *.txt text
62 | AUTHORS text
63 | CHANGELOG text
64 | CHANGES text
65 | CONTRIBUTING text
66 | COPYING text
67 | copyright text
68 | *COPYRIGHT* text
69 | INSTALL text
70 | license text
71 | LICENSE text
72 | NEWS text
73 | readme text
74 | *README* text
75 | TODO text
76 |
77 | ## TEMPLATES
78 | *.dot text
79 | *.ejs text
80 | *.haml text
81 | *.handlebars text
82 | *.hbs text
83 | *.hbt text
84 | *.jade text
85 | *.latte text
86 | *.mustache text
87 | *.njk text
88 | *.phtml text
89 | *.tmpl text
90 | *.tpl text
91 | *.twig text
92 |
93 | ## LINTERS
94 | .csslintrc text
95 | .eslintrc text
96 | .htmlhintrc text
97 | .jscsrc text
98 | .jshintrc text
99 | .jshintignore text
100 | .stylelintrc text
101 |
102 | ## CONFIGS
103 | *.bowerrc text
104 | *.cnf text
105 | *.conf text
106 | *.config text
107 | .browserslistrc text
108 | .editorconfig text
109 | .gitattributes text
110 | .gitconfig text
111 | .htaccess text
112 | *.npmignore text
113 | *.yaml text
114 | *.yml text
115 | browserslist text
116 | Makefile text
117 | makefile text
118 |
119 | ## HEROKU
120 | Procfile text
121 | .slugignore text
122 |
123 | ## GRAPHICS
124 | *.ai binary
125 | *.bmp binary
126 | *.eps binary
127 | *.gif binary
128 | *.ico binary
129 | *.jng binary
130 | *.jp2 binary
131 | *.jpg binary
132 | *.jpeg binary
133 | *.jpx binary
134 | *.jxr binary
135 | *.pdf binary
136 | *.png binary
137 | *.psb binary
138 | *.psd binary
139 | *.svg text
140 | *.svgz binary
141 | *.tif binary
142 | *.tiff binary
143 | *.wbmp binary
144 | *.webp binary
145 |
146 | ## AUDIO
147 | *.kar binary
148 | *.m4a binary
149 | *.mid binary
150 | *.midi binary
151 | *.mp3 binary
152 | *.ogg binary
153 | *.ra binary
154 |
155 | ## VIDEO
156 | *.3gpp binary
157 | *.3gp binary
158 | *.as binary
159 | *.asf binary
160 | *.asx binary
161 | *.fla binary
162 | *.flv binary
163 | *.m4v binary
164 | *.mng binary
165 | *.mov binary
166 | *.mp4 binary
167 | *.mpeg binary
168 | *.mpg binary
169 | *.ogv binary
170 | *.swc binary
171 | *.swf binary
172 | *.webm binary
173 |
174 | ## ARCHIVES
175 | *.7z binary
176 | *.gz binary
177 | *.jar binary
178 | *.rar binary
179 | *.tar binary
180 | *.zip binary
181 |
182 | ## FONTS
183 | *.ttf binary
184 | *.eot binary
185 | *.otf binary
186 | *.woff binary
187 | *.woff2 binary
188 |
189 | ## EXECUTABLES
190 | *.exe binary
191 | *.pyc binary
192 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [scriptex]
4 | patreon: atanas
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: scriptex
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: scriptex
10 | issuehunt: scriptex
11 | otechie: # Replace with a single Otechie username
12 | custom: ['paypal.me/scriptex', 'revolut.me/scriptex']
13 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 |
9 | strategy:
10 | matrix:
11 | node-version: [lts/*]
12 |
13 | steps:
14 | - uses: actions/checkout@v4
15 | - name: Use Node.js ${{ matrix.node-version }}
16 | uses: actions/setup-node@v4
17 | with:
18 | node-version: ${{ matrix.node-version }}
19 | - run: yarn
20 | - run: yarn prod
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Dependency directory
9 | node_modules/
10 |
11 | # Misc
12 | .DS_Store
13 | .DS_Store?
14 | ._*
15 | .Spotlight-V100
16 | .Trashes
17 | ehthumbs.db
18 | Thumbs.db
19 |
20 | .parcel-cache
21 | dist
22 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Dependency directory
9 | node_modules
10 |
11 | # Misc
12 | .DS_Store
13 | .DS_Store?
14 | ._*
15 | .Spotlight-V100
16 | .Trashes
17 | ehthumbs.db
18 | Thumbs.db
19 |
20 | # Config folders and files
21 | .github
22 | _config.yml
23 | _.config.yml
24 | .editorconfig
25 | .eslintignore
26 | .eslintrc
27 | .gitattributes
28 | .gitignore
29 | .nvmrc
30 | .postcssrc.json
31 | .prettierignore
32 | .prettierrc
33 | .stylelintignore
34 | .stylelintrc
35 | .travis.yml
36 | .whitesource
37 | renovate.json
38 | tsconfig.json
39 | tsconfig-lint.json
40 | tslint.json
41 | yarn.lock
42 |
43 | CHANGELOG.md
44 | __tests__
45 | !dist
46 | demo
47 | screenshot.png
48 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | lts/*
2 |
--------------------------------------------------------------------------------
/.postcssrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": {
3 | "autoprefixer": {}
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 80,
3 | "tabWidth": 4,
4 | "useTabs": true,
5 | "semi": true,
6 | "singleQuote": true,
7 | "jsxSingleQuote": false,
8 | "trailingComma": "none",
9 | "bracketSpacing": true,
10 | "jsxBracketSameLine": false,
11 | "arrowParens": "avoid",
12 | "proseWrap": "preserve"
13 | }
14 |
--------------------------------------------------------------------------------
/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["stylelint-config-recommended"]
3 | }
4 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | sudo: false
3 | node_js:
4 | - 'lts/*'
5 | install:
6 | - yarn
7 | script:
8 | - yarn prod
9 |
--------------------------------------------------------------------------------
/.whitesource:
--------------------------------------------------------------------------------
1 | {
2 | "generalSettings": {
3 | "shouldScanRepo": true
4 | },
5 | "checkRunSettings": {
6 | "vulnerableCheckRunConclusionLevel": "success"
7 | },
8 | "issueSettings": {
9 | "minSeverityLevel": "LOW"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ### Changelog
2 |
3 | All notable changes to this project will be documented in this file. Dates are displayed in UTC.
4 |
5 | Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6 |
7 | #### [1.5.0](https://github.com/scriptex/react-round-carousel/compare/1.4.0...1.5.0)
8 |
9 | > 14 August 2023
10 |
11 | - Update dependency eslint-config-prettier to v9 [`#217`](https://github.com/scriptex/react-round-carousel/pull/217)
12 | - Bump word-wrap from 1.2.3 to 1.2.4 [`#213`](https://github.com/scriptex/react-round-carousel/pull/213)
13 | - Update typescript-eslint monorepo to v6 [`#211`](https://github.com/scriptex/react-round-carousel/pull/211)
14 | - Bump semver from 6.3.0 to 6.3.1 [`#212`](https://github.com/scriptex/react-round-carousel/pull/212)
15 | - Update dependency stylelint-config-recommended to v13 [`#208`](https://github.com/scriptex/react-round-carousel/pull/208)
16 | - Update dependency release-it to v16 [`#209`](https://github.com/scriptex/react-round-carousel/pull/209)
17 | - Bump tough-cookie from 4.1.2 to 4.1.3 [`#210`](https://github.com/scriptex/react-round-carousel/pull/210)
18 | - Update the codebase [`2c24401`](https://github.com/scriptex/react-round-carousel/commit/2c24401913922f429a8fc794db165ba5236ba524)
19 | - Update dependency parcel to v2.9.0 [`90ff167`](https://github.com/scriptex/react-round-carousel/commit/90ff1674cc7ff1f364287b81b63ec535a578d7b6)
20 | - Update dependency parcel to v2.9.3 [`d1dac71`](https://github.com/scriptex/react-round-carousel/commit/d1dac71aecc0020a1183990e1ab0b8f10aa95d59)
21 |
22 | #### [1.4.0](https://github.com/scriptex/react-round-carousel/compare/1.3.1...1.4.0)
23 |
24 | > 19 May 2023
25 |
26 | - Аdd forwardRef and imperativе handle to handle inner methods [`#203`](https://github.com/scriptex/react-round-carousel/pull/203)
27 | - Bump vm2 from 3.9.17 to 3.9.18 [`#204`](https://github.com/scriptex/react-round-carousel/pull/204)
28 | - Bump yaml from 2.1.3 to 2.2.2 [`#202`](https://github.com/scriptex/react-round-carousel/pull/202)
29 | - Bump vm2 from 3.9.16 to 3.9.17 [`#200`](https://github.com/scriptex/react-round-carousel/pull/200)
30 | - Update dependency stylelint-config-recommended to v12 [`#198`](https://github.com/scriptex/react-round-carousel/pull/198)
31 | - Bump vm2 from 3.9.15 to 3.9.16 [`#197`](https://github.com/scriptex/react-round-carousel/pull/197)
32 | - Bump vm2 from 3.9.11 to 3.9.15 [`#196`](https://github.com/scriptex/react-round-carousel/pull/196)
33 | - Update dependency stylelint-config-recommended to v11 [`#189`](https://github.com/scriptex/react-round-carousel/pull/189)
34 | - Update dependency typescript to v5 [`#190`](https://github.com/scriptex/react-round-carousel/pull/190)
35 | - Bump cacheable-request from 10.2.3 to 10.2.7 [`#184`](https://github.com/scriptex/react-round-carousel/pull/184)
36 | - Update dependency stylelint to v15 [`#182`](https://github.com/scriptex/react-round-carousel/pull/182)
37 | - Update dependency stylelint-config-recommended to v10 [`#183`](https://github.com/scriptex/react-round-carousel/pull/183)
38 | - Bump http-cache-semantics from 4.1.0 to 4.1.1 [`#181`](https://github.com/scriptex/react-round-carousel/pull/181)
39 | - Bump json5 from 2.2.1 to 2.2.2 in /demo [`#177`](https://github.com/scriptex/react-round-carousel/pull/177)
40 | - Bump json5 from 2.2.1 to 2.2.2 [`#176`](https://github.com/scriptex/react-round-carousel/pull/176)
41 | - Update typescript-eslint monorepo to v5.46.0 [`#175`](https://github.com/scriptex/react-round-carousel/pull/175)
42 | - Update the demo [`16ab61e`](https://github.com/scriptex/react-round-carousel/commit/16ab61ede049ac74008b800524d67bd92048bdb8)
43 | - Update dependency parcel to v2.8.3 [`078c18a`](https://github.com/scriptex/react-round-carousel/commit/078c18a2fbc5b94dd55a2b42423d1439e653b1fd)
44 | - Update dependency parcel to v2.8.1 [`d2ad646`](https://github.com/scriptex/react-round-carousel/commit/d2ad64638c67dd04b02619a3d0de53db697a9783)
45 |
46 | #### [1.3.1](https://github.com/scriptex/react-round-carousel/compare/1.3.0...1.3.1)
47 |
48 | > 23 November 2022
49 |
50 | - Update dependency eslint to v8.26.0 [`#168`](https://github.com/scriptex/react-round-carousel/pull/168)
51 | - Update dependency touchsweep to v2 [`#167`](https://github.com/scriptex/react-round-carousel/pull/167)
52 | - Update dependency parcel to v2.8.0 [`bafcb90`](https://github.com/scriptex/react-round-carousel/commit/bafcb90fa81281b8a808b357621584f423f073f6)
53 | - Update dependencies [`30e9878`](https://github.com/scriptex/react-round-carousel/commit/30e98783f605e2958f19fb6e943923921235ffc2)
54 | - Update jest monorepo to v29.2.0 [`1173cb4`](https://github.com/scriptex/react-round-carousel/commit/1173cb40f49e92633d9451144ae0c043a35d73ef)
55 |
56 | #### [1.3.0](https://github.com/scriptex/react-round-carousel/compare/1.2.0...1.3.0)
57 |
58 | > 21 September 2022
59 |
60 | - Update metadata [`#164`](https://github.com/scriptex/react-round-carousel/pull/164)
61 | - Update dependency ts-jest to v29 [`#158`](https://github.com/scriptex/react-round-carousel/pull/158)
62 | - Update dependency @types/jest to v29 [`#153`](https://github.com/scriptex/react-round-carousel/pull/153)
63 | - Update dependency jest to v29 [`#152`](https://github.com/scriptex/react-round-carousel/pull/152)
64 | - Update dependency stylelint-config-recommended to v9 [`#148`](https://github.com/scriptex/react-round-carousel/pull/148)
65 | - Update demo [`095ffc4`](https://github.com/scriptex/react-round-carousel/commit/095ffc456be56e06eb2e55b44e1c40df5259f524)
66 | - Update jest monorepo to v29.0.2 [`501dae2`](https://github.com/scriptex/react-round-carousel/commit/501dae243dae06a907241f9ae5de550f5ea7732d)
67 | - Update jest monorepo to v29.0.3 [`7c99a7f`](https://github.com/scriptex/react-round-carousel/commit/7c99a7ff9508ae31e76dc552cbc73bd3f8344c7a)
68 |
69 | #### [1.2.0](https://github.com/scriptex/react-round-carousel/compare/1.1.0...1.2.0)
70 |
71 | > 8 August 2022
72 |
73 | - Bump terser from 5.12.0 to 5.14.2 in /demo [`#147`](https://github.com/scriptex/react-round-carousel/pull/147)
74 | - Bump parse-url from 6.0.0 to 6.0.2 [`#145`](https://github.com/scriptex/react-round-carousel/pull/145)
75 | - Update dependency postcss-cli to v10 [`#144`](https://github.com/scriptex/react-round-carousel/pull/144)
76 | - Update dependency stylelint-config-recommended to v8 [`#141`](https://github.com/scriptex/react-round-carousel/pull/141)
77 | - Update dependency @types/jest to v28 [`#140`](https://github.com/scriptex/react-round-carousel/pull/140)
78 | - Update dependency eslint-plugin-react to v7.30.0 [`#138`](https://github.com/scriptex/react-round-carousel/pull/138)
79 | - Update dependency ts-jest to v28 [`#136`](https://github.com/scriptex/react-round-carousel/pull/136)
80 | - Update dependency release-it to v15 [`#134`](https://github.com/scriptex/react-round-carousel/pull/134)
81 | - Update dependency jest to v28 [`#130`](https://github.com/scriptex/react-round-carousel/pull/130)
82 | - Update dependency @types/react-test-renderer to v18 [`#128`](https://github.com/scriptex/react-round-carousel/pull/128)
83 | - Update dependency @types/react-dom to v18 [`#125`](https://github.com/scriptex/react-round-carousel/pull/125)
84 | - Update dependency @types/react to v18 [`#124`](https://github.com/scriptex/react-round-carousel/pull/124)
85 | - Update react monorepo to v18 [`#123`](https://github.com/scriptex/react-round-carousel/pull/123)
86 | - Bump minimist from 1.2.5 to 1.2.6 in /demo [`#119`](https://github.com/scriptex/react-round-carousel/pull/119)
87 | - Bump minimist from 1.2.5 to 1.2.6 [`#120`](https://github.com/scriptex/react-round-carousel/pull/120)
88 | - Update packages [`2d520ee`](https://github.com/scriptex/react-round-carousel/commit/2d520ee65a5f8101df6f88f9d08e9327dc86bbad)
89 | - Update dependency parcel to v2.4.0 [`c217412`](https://github.com/scriptex/react-round-carousel/commit/c217412ac1a80c786176abf2e861d113dbf81d87)
90 | - Update dependency parcel to v2.6.1 [`2315b72`](https://github.com/scriptex/react-round-carousel/commit/2315b726754c6e3ea39c781725cb383800c6bb8a)
91 |
92 | #### [1.1.0](https://github.com/scriptex/react-round-carousel/compare/1.0.0...1.1.0)
93 |
94 | > 2 March 2022
95 |
96 | - Upgrade packages [`#114`](https://github.com/scriptex/react-round-carousel/pull/114)
97 | - Update actions/checkout action to v3 [`#113`](https://github.com/scriptex/react-round-carousel/pull/113)
98 | - Update actions/setup-node action to v3 [`#111`](https://github.com/scriptex/react-round-carousel/pull/111)
99 | - Update dependency stylelint-config-recommended to v7 [`#109`](https://github.com/scriptex/react-round-carousel/pull/109)
100 | - Update dependency release-it to v14.12.4 [`#107`](https://github.com/scriptex/react-round-carousel/pull/107)
101 | - Bump node-fetch from 2.6.1 to 2.6.7 [`#108`](https://github.com/scriptex/react-round-carousel/pull/108)
102 | - Update dependency stylelint to v14.3.0 [`#106`](https://github.com/scriptex/react-round-carousel/pull/106)
103 | - Bump nanoid from 3.1.30 to 3.2.0 [`#105`](https://github.com/scriptex/react-round-carousel/pull/105)
104 | - Update typescript-eslint monorepo to v5.10.0 [`#104`](https://github.com/scriptex/react-round-carousel/pull/104)
105 | - Bump follow-redirects from 1.14.1 to 1.14.7 in /demo [`#102`](https://github.com/scriptex/react-round-carousel/pull/102)
106 | - Update dependency eslint to v8.7.0 [`#103`](https://github.com/scriptex/react-round-carousel/pull/103)
107 | - Update dependency parcel to v2.2.0 [`#100`](https://github.com/scriptex/react-round-carousel/pull/100)
108 | - Update dependency release-it to v14.12.1 [`#99`](https://github.com/scriptex/react-round-carousel/pull/99)
109 | - Update dependency parcel to v2.1.0 [`#96`](https://github.com/scriptex/react-round-carousel/pull/96)
110 | - Update typescript-eslint monorepo to v5.9.0 [`#94`](https://github.com/scriptex/react-round-carousel/pull/94)
111 | - Update dependency eslint to v8.6.0 [`#93`](https://github.com/scriptex/react-round-carousel/pull/93)
112 | - Update dependency @types/jest to v27.4.0 [`#92`](https://github.com/scriptex/react-round-carousel/pull/92)
113 | - Update dependency eslint-plugin-react to v7.28.0 [`#91`](https://github.com/scriptex/react-round-carousel/pull/91)
114 | - Update dependency stylelint to v14.2.0 [`#90`](https://github.com/scriptex/react-round-carousel/pull/90)
115 | - Update typescript-eslint monorepo to v5.8.0 [`#89`](https://github.com/scriptex/react-round-carousel/pull/89)
116 | - Update dependency eslint to v8.5.0 [`#88`](https://github.com/scriptex/react-round-carousel/pull/88)
117 | - Update typescript-eslint monorepo to v5.7.0 [`#87`](https://github.com/scriptex/react-round-carousel/pull/87)
118 | - Update typescript-eslint monorepo to v5.6.0 [`#86`](https://github.com/scriptex/react-round-carousel/pull/86)
119 | - Update dependency ts-jest to v27.1.0 [`#85`](https://github.com/scriptex/react-round-carousel/pull/85)
120 | - Update dependency eslint to v8.4.0 [`#84`](https://github.com/scriptex/react-round-carousel/pull/84)
121 | - Update typescript-eslint monorepo to v5.5.0 [`#83`](https://github.com/scriptex/react-round-carousel/pull/83)
122 | - Update dependency jest to v27.4.0 [`#82`](https://github.com/scriptex/react-round-carousel/pull/82)
123 | - Update dependency eslint to v8.3.0 [`#81`](https://github.com/scriptex/react-round-carousel/pull/81)
124 | - Update dependency typescript to v4.5.2 [`#80`](https://github.com/scriptex/react-round-carousel/pull/80)
125 | - Update typescript-eslint monorepo to v5.4.0 [`#78`](https://github.com/scriptex/react-round-carousel/pull/78)
126 | - Update dependency stylelint to v14.1.0 [`#77`](https://github.com/scriptex/react-round-carousel/pull/77)
127 | - Update dependency eslint-plugin-react to v7.27.0 [`#76`](https://github.com/scriptex/react-round-carousel/pull/76)
128 | - Update dependency eslint-plugin-react-hooks to v4.3.0 [`#75`](https://github.com/scriptex/react-round-carousel/pull/75)
129 | - Update dependency eslint to v8.2.0 [`#74`](https://github.com/scriptex/react-round-carousel/pull/74)
130 | - Update typescript-eslint monorepo to v5.3.0 [`#72`](https://github.com/scriptex/react-round-carousel/pull/72)
131 | - Update typescript-eslint monorepo to v5.2.0 [`#71`](https://github.com/scriptex/react-round-carousel/pull/71)
132 | - Update dependency eslint to v8.1.0 [`#70`](https://github.com/scriptex/react-round-carousel/pull/70)
133 | - Update dependency stylelint to v14 [`#68`](https://github.com/scriptex/react-round-carousel/pull/68)
134 | - Update dependency stylelint-config-recommended to v6 [`#69`](https://github.com/scriptex/react-round-carousel/pull/69)
135 | - Update dependency ts-jest to v27.0.7 [`#67`](https://github.com/scriptex/react-round-carousel/pull/67)
136 | - Update typescript-eslint monorepo to v5.1.0 [`#66`](https://github.com/scriptex/react-round-carousel/pull/66)
137 | - Update dependency jest to v27.3.0 [`#65`](https://github.com/scriptex/react-round-carousel/pull/65)
138 | - Update typescript-eslint monorepo to v5 [`#64`](https://github.com/scriptex/react-round-carousel/pull/64)
139 | - Update dependency eslint to v8 [`#63`](https://github.com/scriptex/react-round-carousel/pull/63)
140 | - Update typescript-eslint monorepo to v4.33.0 [`#62`](https://github.com/scriptex/react-round-carousel/pull/62)
141 | - Update typescript-eslint monorepo to v4.32.0 [`#60`](https://github.com/scriptex/react-round-carousel/pull/60)
142 | - Update dependency @types/jest to v27.0.2 [`#57`](https://github.com/scriptex/react-round-carousel/pull/57)
143 | - Bump nth-check from 2.0.0 to 2.0.1 in /demo [`#58`](https://github.com/scriptex/react-round-carousel/pull/58)
144 | - Bump tmpl from 1.0.4 to 1.0.5 [`#59`](https://github.com/scriptex/react-round-carousel/pull/59)
145 | - Update dependency eslint-plugin-react to v7.26.0 [`#56`](https://github.com/scriptex/react-round-carousel/pull/56)
146 | - Update dependency jest to v27.2.0 [`#52`](https://github.com/scriptex/react-round-carousel/pull/52)
147 | - Update typescript-eslint monorepo to v4.31.0 [`#51`](https://github.com/scriptex/react-round-carousel/pull/51)
148 | - Update typescript-eslint monorepo to v4.30.0 [`#50`](https://github.com/scriptex/react-round-carousel/pull/50)
149 | - Update dependency eslint-plugin-react to v7.25.0 [`#48`](https://github.com/scriptex/react-round-carousel/pull/48)
150 | - Update dependency jest to v27.1.0 [`#47`](https://github.com/scriptex/react-round-carousel/pull/47)
151 | - Update dependency typescript to v4.4.2 [`#46`](https://github.com/scriptex/react-round-carousel/pull/46)
152 | - Update dependency @types/jest to v27 [`#44`](https://github.com/scriptex/react-round-carousel/pull/44)
153 | - Update dependency release-it to v14.11.0 [`#43`](https://github.com/scriptex/react-round-carousel/pull/43)
154 | - Update typescript-eslint monorepo to v4.29.0 [`#42`](https://github.com/scriptex/react-round-carousel/pull/42)
155 | - Update dependency eslint to v7.32.0 [`#41`](https://github.com/scriptex/react-round-carousel/pull/41)
156 | - Update dependency eslint to v7.31.0 [`#40`](https://github.com/scriptex/react-round-carousel/pull/40)
157 | - Update dependency eslint to v7.30.0 [`#38`](https://github.com/scriptex/react-round-carousel/pull/38)
158 | - Update the demo to use random images [`#37`](https://github.com/scriptex/react-round-carousel/pull/37)
159 | - Upgrade packages [`#36`](https://github.com/scriptex/react-round-carousel/pull/36)
160 | - Update typescript-eslint monorepo to v4.28.0 [`#34`](https://github.com/scriptex/react-round-carousel/pull/34)
161 | - Update dependency release-it to v14.10.0 [`#33`](https://github.com/scriptex/react-round-carousel/pull/33)
162 | - Update dependency eslint to v7.29.0 [`#32`](https://github.com/scriptex/react-round-carousel/pull/32)
163 | - Bump postcss from 7.0.35 to 7.0.36 [`#31`](https://github.com/scriptex/react-round-carousel/pull/31)
164 | - Update typescript-eslint monorepo to v4.27.0 [`#30`](https://github.com/scriptex/react-round-carousel/pull/30)
165 | - Update dependency release-it to v14.9.0 [`#29`](https://github.com/scriptex/react-round-carousel/pull/29)
166 | - Bump trim-newlines from 3.0.0 to 3.0.1 [`#26`](https://github.com/scriptex/react-round-carousel/pull/26)
167 | - Update dependency release-it to v14.8.0 [`#25`](https://github.com/scriptex/react-round-carousel/pull/25)
168 | - Update dependency eslint to v7.28.0 [`#24`](https://github.com/scriptex/react-round-carousel/pull/24)
169 | - Update dependency @types/react-dom to v17.0.6 [`#22`](https://github.com/scriptex/react-round-carousel/pull/22)
170 | - Bump ws from 6.2.1 to 6.2.2 in /demo [`#23`](https://github.com/scriptex/react-round-carousel/pull/23)
171 | - Update typescript-eslint monorepo to v4.26.0 [`#21`](https://github.com/scriptex/react-round-carousel/pull/21)
172 | - Update dependency eslint-plugin-react to v7.24.0 [`#17`](https://github.com/scriptex/react-round-carousel/pull/17)
173 | - Bump ws from 7.4.5 to 7.4.6 [`#16`](https://github.com/scriptex/react-round-carousel/pull/16)
174 | - Update dependency typescript to v4.3.2 [`#14`](https://github.com/scriptex/react-round-carousel/pull/14)
175 | - Update dependency ts-jest to v27 [`#12`](https://github.com/scriptex/react-round-carousel/pull/12)
176 | - Update dependency jest to v27 [`#11`](https://github.com/scriptex/react-round-carousel/pull/11)
177 | - Update dependency release-it to v14.7.0 [`#9`](https://github.com/scriptex/react-round-carousel/pull/9)
178 | - Update typescript-eslint monorepo to v4.25.0 [`#10`](https://github.com/scriptex/react-round-carousel/pull/10)
179 | - Update dependency eslint to v7.27.0 [`#8`](https://github.com/scriptex/react-round-carousel/pull/8)
180 | - Update dependency parcel to v2.0.0-nightly.672 [`#7`](https://github.com/scriptex/react-round-carousel/pull/7)
181 | - Update typescript-eslint monorepo to v4.24.0 [`#6`](https://github.com/scriptex/react-round-carousel/pull/6)
182 | - [ImgBot] Optimize images [`#2`](https://github.com/scriptex/react-round-carousel/pull/2)
183 | - Add demo build [`3852592`](https://github.com/scriptex/react-round-carousel/commit/385259280fd6bebc5c6ffe79bbdf3494d0f8f128)
184 | - Update dependency parcel to v2.0.0-rc.0 [`9d44e51`](https://github.com/scriptex/react-round-carousel/commit/9d44e51f3c3b222f3a5dc967ea3e8e67d1f8060d)
185 | - Update dependency parcel to v2.3.0 [`41f49e7`](https://github.com/scriptex/react-round-carousel/commit/41f49e7ba6d82aad26bdadf886d03b0b88681fc8)
186 |
187 | #### 1.0.0
188 |
189 | > 17 May 2021
190 |
191 | - Add the initial version [`5e360fe`](https://github.com/scriptex/react-round-carousel/commit/5e360fe0228b7c49f021177f1e390798f31e6266)
192 | - Initial commit [`dde6180`](https://github.com/scriptex/react-round-carousel/commit/dde618053aab17a34ea4d56cebc2d8535a629794)
193 | - Release 1.0.0 [`681a218`](https://github.com/scriptex/react-round-carousel/commit/681a21816ddb211dabee71bc25f2c6c00f6f22be)
194 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021-Present Atanas Atanasov
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 | [](https://github.com/scriptex/react-round-carousel/actions?query=workflow%3ABuild)
2 | [](https://www.codacy.com/gh/scriptex/react-round-carousel/dashboard?utm_source=github.com&utm_medium=referral&utm_content=scriptex/react-round-carousel&utm_campaign=Badge_Grade)
3 | [](https://codebeat.co/projects/github-com-scriptex-react-round-carousel-master)
4 | [](https://www.codefactor.io/repository/github/scriptex/react-round-carousel)
5 | [](https://deepscan.io/dashboard#view=project&tid=3574&pid=5257&bid=40799)
6 | [](https://github.com/scriptex/react-round-carousel/)
7 |
8 | # React Round Carousel
9 |
10 | > An infinitely scrollable 3D carousel component for React
11 |
12 | [](https://react-round-carousel.atanas.info/)
13 |
14 | This is an infinitely scrollable, touch enabled, 3D, image carousel component which can be used in a React application.
15 |
16 | ## Visitor stats
17 |
18 | 
19 | 
20 | 
21 | 
22 |
23 | ## Code stats
24 |
25 | 
26 | 
27 | 
28 | 
29 | 
30 |
31 | ## Install
32 |
33 | First install the component using your preferred package manager:
34 |
35 | ```sh
36 | npm i react-round-carousel
37 |
38 | # or
39 |
40 | yarn add react-round-carousel
41 | ```
42 |
43 | ## Usage
44 |
45 | Then import the component in your application. Here is an example:
46 |
47 | The slides (or items) should have the following shape:
48 |
49 | | Prop | Type | Required | Description | Example |
50 | | --------- | ----------- | -------- | ------------------------------------------------- | -------------------------------------------- |
51 | | `alt` | `string` | false | Alternative text for the slide image | 'This is an example alt text' |
52 | | `image` | `string` | true | Path or URL to an image | 'https://source.unsplash.com/random/210x210' |
53 | | `content` | `ReactNode` | true | A ReactNode representing the content of the slide | `
Slide Title
` |
54 |
55 | ```typescript
56 | import * as React from 'react';
57 | import { createRoot } from 'react-dom/client';
58 |
59 | import { Carousel, CarouselRef, CarouselItem } from 'react-round-carousel';
60 |
61 | // Create an array of Carousel Items
62 | const items: CarouselItem[] = Array(20)
63 | .fill('')
64 | .map((_: string, index: number) => ({
65 | alt: 'A random photo',
66 | image: `https://picsum.photos/${210 + index}`,
67 | content: (
68 |
69 | Round Carousel
70 | Slide number {index + 1}
71 |
72 | )
73 | }));
74 |
75 | const App = () => {
76 | const carouselRef = React.createRef();
77 |
78 | return ;
79 | };
80 |
81 | createRoot(document.getElementById('root')!).render( );
82 | ```
83 |
84 | ## Options
85 |
86 | The component accepts the following configuration options as props:
87 |
88 | | Prop | Type | Required | Description | Default |
89 | | ------------------- | ------------------ | -------- | ----------------------------------------------- | ---------- |
90 | | `classNamePrefix` | `string` | false | CSS classname prefix for the Carousel component | 'carousel' |
91 | | `items` | `CarouselItem` | true | An array of `CarouselItem`s | [] |
92 | | `itemWidth` | `number` | false | Width of each of the carousel items | 210 |
93 | | `nextButtonContent` | `string/ReactNode` | false | Content of the next button | 'Next' |
94 | | `prevButtonContent` | `string/ReactNode` | false | Content of the previous button | 'Previous' |
95 | | `showControls` | `boolean` | false | Show/hide navigation controls | true |
96 | | `slideOnClick` | `boolean` | false | Slide to the clicked slide | false |
97 |
98 | ## Controlling from outside
99 |
100 | It is possible to control the component from outside - for example from a parent component. In order to do so, a React Ref should be used. The `current` reference contains several methods, including:
101 |
102 | - `next` - Slides the carousel to the next slide.
103 | - `prev` - Slides the carousel to the previous slide.
104 | - `getItems` - Returns an array with all items passed to the carousel.
105 | - `getSelectedIndex` - Returns the active slide index of the carousel.
106 | - `setSelectedIndex` - Sets the active slide index of the carousel and slides to this slide.
107 |
108 | The [demo](https://react-round-carousel.atanas.info) shows how to use these methods.
109 |
110 | ## Style
111 |
112 | In order to achieve the layout shown in the [demo](https://react-round-carousel.atanas.info), you should add styles to your markup.
113 |
114 | There is an already existing stylesheet which can be found in the `src` folder and can be imported:
115 |
116 | - in your JS entrypoint
117 |
118 | ```javascript
119 | import 'react-round-carousel/src/index.css';
120 | ```
121 |
122 | - in your CSS entrypoint
123 |
124 | ```css
125 | @import 'react-round-carousel/src/index.css';
126 | ```
127 |
128 | If you don't want to use the default stylesheet, you can create and use your own.
129 |
130 | ## LICENSE
131 |
132 | MIT
133 |
134 | ---
135 |
136 |
137 | Connect with me:
138 |
139 |
140 |
141 |
142 |
191 |
192 | ---
193 |
194 |
226 |
--------------------------------------------------------------------------------
/_.config.yml:
--------------------------------------------------------------------------------
1 | plugins:
2 | - jekyll-relative-links
3 | relative_links:
4 | enabled: true
5 | collections: true
6 | include:
7 | - CONTRIBUTING.md
8 | - README.md
9 | - LICENSE.md
10 | - COPYING.md
11 | - CODE_OF_CONDUCT.md
12 | - CONTRIBUTING.md
13 | - ISSUE_TEMPLATE.md
14 | - PULL_REQUEST_TEMPLATE.md
15 |
--------------------------------------------------------------------------------
/__tests__/__snapshots__/index.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Accordion should render properly with ref prop 1`] = `
4 |
5 |
8 |
12 |
16 |
20 |
23 |
24 |
25 | Round Carousel
26 |
27 |
28 | Slide number 1
29 |
30 |
31 |
32 |
33 |
37 |
41 |
44 |
45 |
46 | Round Carousel
47 |
48 |
49 | Slide number 2
50 |
51 |
52 |
53 |
54 |
55 |
56 |
59 |
62 | Previous
63 |
64 |
67 | Next
68 |
69 |
70 |
71 | `;
72 |
73 | exports[`Accordion should render properly with ref prop 2`] = `
74 |
75 |
78 |
82 |
86 |
90 |
93 |
94 |
95 | Round Carousel
96 |
97 |
98 | Slide number 1
99 |
100 |
101 |
102 |
103 |
107 |
111 |
114 |
115 |
116 | Round Carousel
117 |
118 |
119 | Slide number 2
120 |
121 |
122 |
123 |
124 |
125 |
126 |
129 |
132 | Previous
133 |
134 |
137 | Next
138 |
139 |
140 |
141 | `;
142 |
143 | exports[`Accordion should render properly with ref prop 3`] = `
144 |
145 |
148 |
152 |
156 |
160 |
163 |
164 |
165 | Round Carousel
166 |
167 |
168 | Slide number 1
169 |
170 |
171 |
172 |
173 |
177 |
181 |
184 |
185 |
186 | Round Carousel
187 |
188 |
189 | Slide number 2
190 |
191 |
192 |
193 |
194 |
195 |
196 |
199 |
202 | Previous
203 |
204 |
207 | Next
208 |
209 |
210 |
211 | `;
212 |
213 | exports[`Accordion should render properly without ref props 1`] = `
214 |
215 |
218 |
222 |
226 |
230 |
233 |
234 |
235 | Round Carousel
236 |
237 |
238 | Slide number 1
239 |
240 |
241 |
242 |
243 |
247 |
251 |
254 |
255 |
256 | Round Carousel
257 |
258 |
259 | Slide number 2
260 |
261 |
262 |
263 |
264 |
265 |
266 |
269 |
272 | Previous
273 |
274 |
277 | Next
278 |
279 |
280 |
281 | `;
282 |
--------------------------------------------------------------------------------
/__tests__/index.tsx:
--------------------------------------------------------------------------------
1 | import React, { createRef } from 'react';
2 | import { render, waitFor, fireEvent } from '@testing-library/react';
3 |
4 | import { items } from '../demo/mocks';
5 | import { Carousel, CarouselRef } from '../src';
6 |
7 | const carouselItems = items
8 | .map(item => ({
9 | ...item,
10 | image: item.image.replace(/\?.*$/gm, '')
11 | }))
12 | .slice(0, 2);
13 |
14 | describe('Accordion', () => {
15 | it('should render properly with ref prop', async () => {
16 | const ref = createRef();
17 | const { asFragment, getAllByRole } = await waitFor(() =>
18 | render( )
19 | );
20 |
21 | expect(asFragment()).toMatchSnapshot();
22 |
23 | const carousel = ref.current;
24 |
25 | expect(carousel).toBeDefined();
26 | expect(carousel?.next).toBeInstanceOf(Function);
27 | expect(carousel?.prev).toBeInstanceOf(Function);
28 | expect(carousel?.getItems).toBeInstanceOf(Function);
29 | expect(carousel?.getSelectedIndex).toBeInstanceOf(Function);
30 | expect(carousel?.setSelectedIndex).toBeInstanceOf(Function);
31 |
32 | expect(carousel?.getItems().length).toEqual(2);
33 | expect(carousel?.getSelectedIndex()).toEqual(0);
34 |
35 | const [prev, next] = getAllByRole('button');
36 |
37 | await waitFor(() => fireEvent(next, new Event('click')));
38 |
39 | expect(asFragment()).toMatchSnapshot();
40 |
41 | await waitFor(() => fireEvent(prev, new Event('click')));
42 |
43 | expect(asFragment()).toMatchSnapshot();
44 | });
45 |
46 | it('should render properly without ref props', () => {
47 | const { asFragment } = render( );
48 |
49 | expect(asFragment()).toMatchSnapshot();
50 | });
51 | });
52 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-slate
2 |
--------------------------------------------------------------------------------
/demo/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": [
3 | [
4 | "@babel/plugin-transform-react-jsx",
5 | {
6 | "runtime": "automatic"
7 | }
8 | ]
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/demo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | React Round Carousel Demo
9 |
10 |
11 |
12 |
16 |
17 |
22 |
23 |
142 |
143 |
158 |
159 |
160 |
161 |
React Round Carousel
162 |
163 |
Install
164 |
165 |
166 | npm install react-round-carousel
167 |
168 | # or
169 |
170 | yarn add react-round-carousel
171 |
172 |
173 |
Use the module
174 |
175 |
176 | import * as React from 'react';
177 | import { createRoot } from 'react-dom/client';
178 |
179 | import { Carousel, CarouselItem, CarouselRef } from 'react-round-carousel';
180 |
181 | // Create an array of Carousel Items
182 | const items: CarouselItem[] = Array(20)
183 | .fill('')
184 | .map((_: string, index: number) => ({
185 | alt: 'A random photo',
186 | image: `https://picsum.photos/${210 + index}`,
187 | content: (
188 | <div>
189 | <strong>Round Carousel</strong>
190 | <span>Slide number {index + 1}</span>
191 | </div>
192 | )
193 | }));
194 |
195 | const App = () => {
196 | const carouselRef = React.createRef<CarouselRef>();
197 |
198 | return (
199 | <Carousel
200 | ref={carouselRef}
201 | items={items}
202 | slideOnClick
203 | />;
204 | )
205 | }
206 |
207 | createRoot(document.getElementById('root')!).render(<App />);
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
--------------------------------------------------------------------------------
/demo/index.tsx:
--------------------------------------------------------------------------------
1 | import { createRoot } from 'react-dom/client';
2 | import React, { useState, createRef, DetailedHTMLProps } from 'react';
3 |
4 | import 'scriptex-socials';
5 |
6 | import { items } from './mocks';
7 | import { Carousel, CarouselRef } from '../dist/index';
8 |
9 | const getRandomValue = () => {
10 | const crypto = window.crypto || window.msCrypto;
11 | const array = new Uint8Array(1);
12 |
13 | return crypto.getRandomValues(array)[0] / Math.pow(2, 8);
14 | };
15 |
16 | declare global {
17 | namespace React {
18 | namespace JSX {
19 | interface IntrinsicElements {
20 | 'social-links': DetailedHTMLProps<
21 | HTMLAttributes,
22 | HTMLElement
23 | >;
24 | }
25 | }
26 | }
27 |
28 | interface Window {
29 | msCrypto: typeof Crypto;
30 | }
31 | }
32 |
33 | const App = () => {
34 | const carouselRef = createRef();
35 | const [result, setResult] = useState('');
36 |
37 | return (
38 | <>
39 |
45 | See code on Github
46 |
47 |
48 |
49 |
External controls
50 |
51 | {result && (
52 |
53 | {result}
54 |
55 | )}
56 |
57 |
58 |
59 | {
61 | setResult(
62 | JSON.stringify(
63 | carouselRef.current?.getItems() || [],
64 | null,
65 | 2
66 | )
67 | );
68 | }}
69 | >
70 | Get carousel items
71 |
72 |
73 |
74 |
75 | {
77 | setResult('');
78 |
79 | carouselRef.current?.prev();
80 | }}
81 | >
82 | Go to previous slide
83 |
84 |
85 |
86 |
87 | {
89 | setResult('');
90 |
91 | carouselRef.current?.next();
92 | }}
93 | >
94 | Go to next slide
95 |
96 |
97 |
98 |
99 | {
101 | const index = carouselRef.current
102 | ?.getSelectedIndex()
103 | .toString();
104 |
105 | setResult(`Selected slide's index is ${index}`);
106 | }}
107 | >
108 | Get selected slide's index
109 |
110 |
111 |
112 |
113 | {
115 | const index = Math.floor(
116 | getRandomValue() * items.length
117 | );
118 |
119 | carouselRef.current?.setSelectedIndex(index);
120 |
121 | setResult(`Selected slide's index is ${index}`);
122 | }}
123 | >
124 | Set selected slide's index to a random value
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 | Carousel with React.ref, external controls and slideOnClick
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 | Carousel without React.ref, external controls and
141 | slideOnClick
142 |
143 |
144 |
145 |
146 |
147 |
148 | >
149 | );
150 | };
151 |
152 | createRoot(document.getElementById('root')!).render( );
153 |
--------------------------------------------------------------------------------
/demo/mocks.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { CarouselItem } from '../src';
3 |
4 | const AMOUNT = 20;
5 |
6 | export const items: CarouselItem[] = Array(AMOUNT)
7 | .fill('')
8 | .map((_: string, index: number) => ({
9 | alt: 'A random Unsplash photo',
10 | image: `https://picsum.photos/${210 + index}`,
11 | content: (
12 |
13 | Round Carousel
14 | Slide number {index + 1}
15 |
16 | )
17 | }));
18 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-round-carousel-example",
3 | "version": "1.0.0",
4 | "license": "MIT",
5 | "scripts": {
6 | "clean": "rm -rf dist",
7 | "start": "yarn clean && parcel index.html",
8 | "build": "yarn clean && parcel build index.html --no-source-maps"
9 | },
10 | "alias": {
11 | "process": false,
12 | "react": "../node_modules/react",
13 | "react-dom": "../node_modules/react-dom"
14 | },
15 | "dependencies": {
16 | "scriptex-socials": "1.8.0"
17 | },
18 | "devDependencies": {
19 | "@babel/core": "7.27.4",
20 | "@babel/plugin-transform-react-jsx": "7.27.1",
21 | "@types/react": "19.1.6",
22 | "@types/react-dom": "19.1.5",
23 | "parcel": "2.15.2",
24 | "process": "0.11.10",
25 | "typescript": "5.8.3"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/demo/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.2.0":
6 | version "2.3.0"
7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
8 | integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
9 | dependencies:
10 | "@jridgewell/gen-mapping" "^0.3.5"
11 | "@jridgewell/trace-mapping" "^0.3.24"
12 |
13 | "@babel/code-frame@^7.27.1":
14 | version "7.27.1"
15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be"
16 | integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==
17 | dependencies:
18 | "@babel/helper-validator-identifier" "^7.27.1"
19 | js-tokens "^4.0.0"
20 | picocolors "^1.1.1"
21 |
22 | "@babel/compat-data@^7.27.2":
23 | version "7.27.3"
24 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.3.tgz#cc49c2ac222d69b889bf34c795f537c0c6311111"
25 | integrity sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==
26 |
27 | "@babel/core@7.27.4":
28 | version "7.27.4"
29 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.4.tgz#cc1fc55d0ce140a1828d1dd2a2eba285adbfb3ce"
30 | integrity sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==
31 | dependencies:
32 | "@ampproject/remapping" "^2.2.0"
33 | "@babel/code-frame" "^7.27.1"
34 | "@babel/generator" "^7.27.3"
35 | "@babel/helper-compilation-targets" "^7.27.2"
36 | "@babel/helper-module-transforms" "^7.27.3"
37 | "@babel/helpers" "^7.27.4"
38 | "@babel/parser" "^7.27.4"
39 | "@babel/template" "^7.27.2"
40 | "@babel/traverse" "^7.27.4"
41 | "@babel/types" "^7.27.3"
42 | convert-source-map "^2.0.0"
43 | debug "^4.1.0"
44 | gensync "^1.0.0-beta.2"
45 | json5 "^2.2.3"
46 | semver "^6.3.1"
47 |
48 | "@babel/generator@^7.27.1":
49 | version "7.27.1"
50 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.1.tgz#862d4fad858f7208edd487c28b58144036b76230"
51 | integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==
52 | dependencies:
53 | "@babel/parser" "^7.27.1"
54 | "@babel/types" "^7.27.1"
55 | "@jridgewell/gen-mapping" "^0.3.5"
56 | "@jridgewell/trace-mapping" "^0.3.25"
57 | jsesc "^3.0.2"
58 |
59 | "@babel/generator@^7.27.3":
60 | version "7.27.3"
61 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.3.tgz#ef1c0f7cfe3b5fc8cbb9f6cc69f93441a68edefc"
62 | integrity sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==
63 | dependencies:
64 | "@babel/parser" "^7.27.3"
65 | "@babel/types" "^7.27.3"
66 | "@jridgewell/gen-mapping" "^0.3.5"
67 | "@jridgewell/trace-mapping" "^0.3.25"
68 | jsesc "^3.0.2"
69 |
70 | "@babel/helper-annotate-as-pure@^7.27.1":
71 | version "7.27.1"
72 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz#4345d81a9a46a6486e24d069469f13e60445c05d"
73 | integrity sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==
74 | dependencies:
75 | "@babel/types" "^7.27.1"
76 |
77 | "@babel/helper-compilation-targets@^7.27.2":
78 | version "7.27.2"
79 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d"
80 | integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==
81 | dependencies:
82 | "@babel/compat-data" "^7.27.2"
83 | "@babel/helper-validator-option" "^7.27.1"
84 | browserslist "^4.24.0"
85 | lru-cache "^5.1.1"
86 | semver "^6.3.1"
87 |
88 | "@babel/helper-module-imports@^7.27.1":
89 | version "7.27.1"
90 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204"
91 | integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==
92 | dependencies:
93 | "@babel/traverse" "^7.27.1"
94 | "@babel/types" "^7.27.1"
95 |
96 | "@babel/helper-module-transforms@^7.27.3":
97 | version "7.27.3"
98 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02"
99 | integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==
100 | dependencies:
101 | "@babel/helper-module-imports" "^7.27.1"
102 | "@babel/helper-validator-identifier" "^7.27.1"
103 | "@babel/traverse" "^7.27.3"
104 |
105 | "@babel/helper-plugin-utils@^7.27.1":
106 | version "7.27.1"
107 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c"
108 | integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==
109 |
110 | "@babel/helper-string-parser@^7.27.1":
111 | version "7.27.1"
112 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
113 | integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
114 |
115 | "@babel/helper-validator-identifier@^7.27.1":
116 | version "7.27.1"
117 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8"
118 | integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==
119 |
120 | "@babel/helper-validator-option@^7.27.1":
121 | version "7.27.1"
122 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f"
123 | integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
124 |
125 | "@babel/helpers@^7.27.4":
126 | version "7.27.4"
127 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.4.tgz#c79050c6a0e41e095bfc96d469c85431e9ed7fe7"
128 | integrity sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==
129 | dependencies:
130 | "@babel/template" "^7.27.2"
131 | "@babel/types" "^7.27.3"
132 |
133 | "@babel/parser@^7.27.1":
134 | version "7.27.1"
135 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.1.tgz#c55d5bed74449d1223701f1869b9ee345cc94cc9"
136 | integrity sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==
137 | dependencies:
138 | "@babel/types" "^7.27.1"
139 |
140 | "@babel/parser@^7.27.2", "@babel/parser@^7.27.3":
141 | version "7.27.3"
142 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.3.tgz#1b7533f0d908ad2ac545c4d05cbe2fb6dc8cfaaf"
143 | integrity sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==
144 | dependencies:
145 | "@babel/types" "^7.27.3"
146 |
147 | "@babel/parser@^7.27.4":
148 | version "7.27.4"
149 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.4.tgz#f92e89e4f51847be05427285836fc88341c956df"
150 | integrity sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g==
151 | dependencies:
152 | "@babel/types" "^7.27.3"
153 |
154 | "@babel/plugin-syntax-jsx@^7.27.1":
155 | version "7.27.1"
156 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c"
157 | integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==
158 | dependencies:
159 | "@babel/helper-plugin-utils" "^7.27.1"
160 |
161 | "@babel/plugin-transform-react-jsx@7.27.1":
162 | version "7.27.1"
163 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz#1023bc94b78b0a2d68c82b5e96aed573bcfb9db0"
164 | integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==
165 | dependencies:
166 | "@babel/helper-annotate-as-pure" "^7.27.1"
167 | "@babel/helper-module-imports" "^7.27.1"
168 | "@babel/helper-plugin-utils" "^7.27.1"
169 | "@babel/plugin-syntax-jsx" "^7.27.1"
170 | "@babel/types" "^7.27.1"
171 |
172 | "@babel/template@^7.27.1":
173 | version "7.27.1"
174 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.1.tgz#b9e4f55c17a92312774dfbdde1b3c01c547bbae2"
175 | integrity sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==
176 | dependencies:
177 | "@babel/code-frame" "^7.27.1"
178 | "@babel/parser" "^7.27.1"
179 | "@babel/types" "^7.27.1"
180 |
181 | "@babel/template@^7.27.2":
182 | version "7.27.2"
183 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d"
184 | integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==
185 | dependencies:
186 | "@babel/code-frame" "^7.27.1"
187 | "@babel/parser" "^7.27.2"
188 | "@babel/types" "^7.27.1"
189 |
190 | "@babel/traverse@^7.27.1":
191 | version "7.27.1"
192 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.1.tgz#4db772902b133bbddd1c4f7a7ee47761c1b9f291"
193 | integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==
194 | dependencies:
195 | "@babel/code-frame" "^7.27.1"
196 | "@babel/generator" "^7.27.1"
197 | "@babel/parser" "^7.27.1"
198 | "@babel/template" "^7.27.1"
199 | "@babel/types" "^7.27.1"
200 | debug "^4.3.1"
201 | globals "^11.1.0"
202 |
203 | "@babel/traverse@^7.27.3":
204 | version "7.27.3"
205 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.3.tgz#8b62a6c2d10f9d921ba7339c90074708509cffae"
206 | integrity sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==
207 | dependencies:
208 | "@babel/code-frame" "^7.27.1"
209 | "@babel/generator" "^7.27.3"
210 | "@babel/parser" "^7.27.3"
211 | "@babel/template" "^7.27.2"
212 | "@babel/types" "^7.27.3"
213 | debug "^4.3.1"
214 | globals "^11.1.0"
215 |
216 | "@babel/traverse@^7.27.4":
217 | version "7.27.4"
218 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.4.tgz#b0045ac7023c8472c3d35effd7cc9ebd638da6ea"
219 | integrity sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==
220 | dependencies:
221 | "@babel/code-frame" "^7.27.1"
222 | "@babel/generator" "^7.27.3"
223 | "@babel/parser" "^7.27.4"
224 | "@babel/template" "^7.27.2"
225 | "@babel/types" "^7.27.3"
226 | debug "^4.3.1"
227 | globals "^11.1.0"
228 |
229 | "@babel/types@^7.27.1":
230 | version "7.27.1"
231 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560"
232 | integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==
233 | dependencies:
234 | "@babel/helper-string-parser" "^7.27.1"
235 | "@babel/helper-validator-identifier" "^7.27.1"
236 |
237 | "@babel/types@^7.27.3":
238 | version "7.27.3"
239 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.3.tgz#c0257bedf33aad6aad1f406d35c44758321eb3ec"
240 | integrity sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==
241 | dependencies:
242 | "@babel/helper-string-parser" "^7.27.1"
243 | "@babel/helper-validator-identifier" "^7.27.1"
244 |
245 | "@jridgewell/gen-mapping@^0.3.5":
246 | version "0.3.8"
247 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142"
248 | integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
249 | dependencies:
250 | "@jridgewell/set-array" "^1.2.1"
251 | "@jridgewell/sourcemap-codec" "^1.4.10"
252 | "@jridgewell/trace-mapping" "^0.3.24"
253 |
254 | "@jridgewell/resolve-uri@^3.1.0":
255 | version "3.1.2"
256 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
257 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
258 |
259 | "@jridgewell/set-array@^1.2.1":
260 | version "1.2.1"
261 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
262 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
263 |
264 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
265 | version "1.5.0"
266 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
267 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
268 |
269 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
270 | version "0.3.25"
271 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
272 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
273 | dependencies:
274 | "@jridgewell/resolve-uri" "^3.1.0"
275 | "@jridgewell/sourcemap-codec" "^1.4.14"
276 |
277 | "@lezer/common@^1.0.0":
278 | version "1.2.3"
279 | resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.3.tgz#138fcddab157d83da557554851017c6c1e5667fd"
280 | integrity sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==
281 |
282 | "@lezer/lr@^1.0.0":
283 | version "1.4.2"
284 | resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727"
285 | integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==
286 | dependencies:
287 | "@lezer/common" "^1.0.0"
288 |
289 | "@lmdb/lmdb-darwin-arm64@2.8.5":
290 | version "2.8.5"
291 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e"
292 | integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==
293 |
294 | "@lmdb/lmdb-darwin-x64@2.8.5":
295 | version "2.8.5"
296 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184"
297 | integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==
298 |
299 | "@lmdb/lmdb-linux-arm64@2.8.5":
300 | version "2.8.5"
301 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e"
302 | integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==
303 |
304 | "@lmdb/lmdb-linux-arm@2.8.5":
305 | version "2.8.5"
306 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d"
307 | integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==
308 |
309 | "@lmdb/lmdb-linux-x64@2.8.5":
310 | version "2.8.5"
311 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz#6c61835b6cc58efdf79dbd5e8c72a38300a90302"
312 | integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==
313 |
314 | "@lmdb/lmdb-win32-x64@2.8.5":
315 | version "2.8.5"
316 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c"
317 | integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==
318 |
319 | "@mischnic/json-sourcemap@^0.1.1":
320 | version "0.1.1"
321 | resolved "https://registry.yarnpkg.com/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz#0ef9b015a8f575dd9a8720d9a6b4dbc988425906"
322 | integrity sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==
323 | dependencies:
324 | "@lezer/common" "^1.0.0"
325 | "@lezer/lr" "^1.0.0"
326 | json5 "^2.2.1"
327 |
328 | "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3":
329 | version "3.0.3"
330 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz#9edec61b22c3082018a79f6d1c30289ddf3d9d11"
331 | integrity sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==
332 |
333 | "@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3":
334 | version "3.0.3"
335 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz#33677a275204898ad8acbf62734fc4dc0b6a4855"
336 | integrity sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==
337 |
338 | "@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3":
339 | version "3.0.3"
340 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz#19edf7cdc2e7063ee328403c1d895a86dd28f4bb"
341 | integrity sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==
342 |
343 | "@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3":
344 | version "3.0.3"
345 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz#94fb0543ba2e28766c3fc439cabbe0440ae70159"
346 | integrity sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==
347 |
348 | "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3":
349 | version "3.0.3"
350 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz#4a0609ab5fe44d07c9c60a11e4484d3c38bbd6e3"
351 | integrity sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==
352 |
353 | "@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3":
354 | version "3.0.3"
355 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242"
356 | integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==
357 |
358 | "@parcel/bundler-default@2.15.2":
359 | version "2.15.2"
360 | resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.15.2.tgz#73d97ef9ef53b1388a2eb7c54e2afcec958c4c4c"
361 | integrity sha512-k0psV7OZYs1g6jcJweBjINVZaVTcfFr6PuCQr28biZ85qbc70f5pWzCzY963+dF3XO/QwTzDABZsJUiDf5jPfQ==
362 | dependencies:
363 | "@parcel/diagnostic" "2.15.2"
364 | "@parcel/graph" "3.5.2"
365 | "@parcel/plugin" "2.15.2"
366 | "@parcel/rust" "2.15.2"
367 | "@parcel/utils" "2.15.2"
368 | nullthrows "^1.1.1"
369 |
370 | "@parcel/cache@2.15.2":
371 | version "2.15.2"
372 | resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.15.2.tgz#afe39d523e232bc6ae44642d6d30ca62fcece59b"
373 | integrity sha512-xYVNKWUHT5hCxo+9nBy9xm7NVfk/jswo+SrU12pXtJm4S5kyK7/PaNkiXxnDu/Hiec2s9BqG/7ny5WBX+i/fAw==
374 | dependencies:
375 | "@parcel/fs" "2.15.2"
376 | "@parcel/logger" "2.15.2"
377 | "@parcel/utils" "2.15.2"
378 | lmdb "2.8.5"
379 |
380 | "@parcel/codeframe@2.15.2":
381 | version "2.15.2"
382 | resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.15.2.tgz#1e5dc21fbdfa6064c2dd790ae1e997b1f26f45d4"
383 | integrity sha512-uzcHUXBXV+vUqXE7SR6Et60GauPGTWvc381pVzCzc90VQJyWY/xyRRIgcA+4MLi2+lQj+w4Uq9H9qg+hMx/JFg==
384 | dependencies:
385 | chalk "^4.1.2"
386 |
387 | "@parcel/compressor-raw@2.15.2":
388 | version "2.15.2"
389 | resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.15.2.tgz#6119e4152ecd83e323a62bddf10951bcd5a7bd9b"
390 | integrity sha512-p+Rr70kX6+bcFPtrrKFdNYnZzdSRSWXi8fvLzZtxissX2ANYS1oFdF6ia37pnzVlHhuYcN6HHMIHbDzJmRvMqA==
391 | dependencies:
392 | "@parcel/plugin" "2.15.2"
393 |
394 | "@parcel/config-default@2.15.2":
395 | version "2.15.2"
396 | resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.15.2.tgz#70ff341666ad11ef0c1e1f1c5019638fb9fb8e0f"
397 | integrity sha512-spJWqNnymehtESYM89d/E7P7WgFJ7PpOwr2Y1k1ItdEzuq87FZvudAs8bccXMHD69IgtEes+B0dUSEiOb8YlMQ==
398 | dependencies:
399 | "@parcel/bundler-default" "2.15.2"
400 | "@parcel/compressor-raw" "2.15.2"
401 | "@parcel/namer-default" "2.15.2"
402 | "@parcel/optimizer-css" "2.15.2"
403 | "@parcel/optimizer-html" "2.15.2"
404 | "@parcel/optimizer-image" "2.15.2"
405 | "@parcel/optimizer-svg" "2.15.2"
406 | "@parcel/optimizer-swc" "2.15.2"
407 | "@parcel/packager-css" "2.15.2"
408 | "@parcel/packager-html" "2.15.2"
409 | "@parcel/packager-js" "2.15.2"
410 | "@parcel/packager-raw" "2.15.2"
411 | "@parcel/packager-svg" "2.15.2"
412 | "@parcel/packager-wasm" "2.15.2"
413 | "@parcel/reporter-dev-server" "2.15.2"
414 | "@parcel/resolver-default" "2.15.2"
415 | "@parcel/runtime-browser-hmr" "2.15.2"
416 | "@parcel/runtime-js" "2.15.2"
417 | "@parcel/runtime-rsc" "2.15.2"
418 | "@parcel/runtime-service-worker" "2.15.2"
419 | "@parcel/transformer-babel" "2.15.2"
420 | "@parcel/transformer-css" "2.15.2"
421 | "@parcel/transformer-html" "2.15.2"
422 | "@parcel/transformer-image" "2.15.2"
423 | "@parcel/transformer-js" "2.15.2"
424 | "@parcel/transformer-json" "2.15.2"
425 | "@parcel/transformer-node" "2.15.2"
426 | "@parcel/transformer-postcss" "2.15.2"
427 | "@parcel/transformer-posthtml" "2.15.2"
428 | "@parcel/transformer-raw" "2.15.2"
429 | "@parcel/transformer-react-refresh-wrap" "2.15.2"
430 | "@parcel/transformer-svg" "2.15.2"
431 |
432 | "@parcel/core@2.15.2":
433 | version "2.15.2"
434 | resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.15.2.tgz#b84362d0948ff2c8cebea4d3c3d6b7c6f6c1c5fc"
435 | integrity sha512-yIFtxeLPLbTkpNuXGmnBX1U51unxv+gRoH/I5IcyD/vRL2Kp/cQU6YJWTSGK5sWG1Fgo+1Z2DeYp914Yd4a1WQ==
436 | dependencies:
437 | "@mischnic/json-sourcemap" "^0.1.1"
438 | "@parcel/cache" "2.15.2"
439 | "@parcel/diagnostic" "2.15.2"
440 | "@parcel/events" "2.15.2"
441 | "@parcel/feature-flags" "2.15.2"
442 | "@parcel/fs" "2.15.2"
443 | "@parcel/graph" "3.5.2"
444 | "@parcel/logger" "2.15.2"
445 | "@parcel/package-manager" "2.15.2"
446 | "@parcel/plugin" "2.15.2"
447 | "@parcel/profiler" "2.15.2"
448 | "@parcel/rust" "2.15.2"
449 | "@parcel/source-map" "^2.1.1"
450 | "@parcel/types" "2.15.2"
451 | "@parcel/utils" "2.15.2"
452 | "@parcel/workers" "2.15.2"
453 | base-x "^3.0.11"
454 | browserslist "^4.24.5"
455 | clone "^2.1.2"
456 | dotenv "^16.5.0"
457 | dotenv-expand "^11.0.7"
458 | json5 "^2.2.3"
459 | msgpackr "^1.11.2"
460 | nullthrows "^1.1.1"
461 | semver "^7.7.1"
462 |
463 | "@parcel/diagnostic@2.15.2":
464 | version "2.15.2"
465 | resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.15.2.tgz#6f77032bde57a64a345dfe56c466b9a15f45b49c"
466 | integrity sha512-lsIF59BgfLzN3SP5VM42pa9lilcotEoF42H2RgnqLe3KACcNcbbtvjyjlvac+iaSRix4gEkuZa6376X6p7DkFQ==
467 | dependencies:
468 | "@mischnic/json-sourcemap" "^0.1.1"
469 | nullthrows "^1.1.1"
470 |
471 | "@parcel/error-overlay@2.15.2":
472 | version "2.15.2"
473 | resolved "https://registry.yarnpkg.com/@parcel/error-overlay/-/error-overlay-2.15.2.tgz#e704a7fee7e48181692e7e904a351b612e426dbc"
474 | integrity sha512-bfDWkTQ4jCBUdOSynXo49pCPrVgtYSwobSxMeNhmwpdKbFvavj/09eZkAHikQgcrCF8gBwapik/U2YBTnFt0fg==
475 |
476 | "@parcel/events@2.15.2":
477 | version "2.15.2"
478 | resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.15.2.tgz#afdf680d04109b48aa0df14821a682b67843e9f1"
479 | integrity sha512-CxXVuYz/K3sDIquM+3Pemxhppb8Q/mRayxqxZtXHoKbhiLBeyX+pLz2v9Hr0R7fiN6naV00IG48Zc5aArHXR4w==
480 |
481 | "@parcel/feature-flags@2.15.2":
482 | version "2.15.2"
483 | resolved "https://registry.yarnpkg.com/@parcel/feature-flags/-/feature-flags-2.15.2.tgz#922eaf9332e04529ec169154dc506e6113d40bac"
484 | integrity sha512-6oiuLd3ypk4GY8X9/l/GrngzSddHW8yF8DrYA++TkaPDtTz4llanza/p7RIk/ltdV3hmBxnH4vjWtciJEcbQww==
485 |
486 | "@parcel/fs@2.15.2":
487 | version "2.15.2"
488 | resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.15.2.tgz#29da2f52921848eb25507bf2ab318a9bddf31c81"
489 | integrity sha512-/Xe+eFbxH43vBCZD+L0nkyIKo8i/nYQpRqzum4YTEoG8WHdcwNl12L9dOcM6EwpaCf6amNVjzBQJMwQ+6E1Y4A==
490 | dependencies:
491 | "@parcel/feature-flags" "2.15.2"
492 | "@parcel/rust" "2.15.2"
493 | "@parcel/types-internal" "2.15.2"
494 | "@parcel/utils" "2.15.2"
495 | "@parcel/watcher" "^2.0.7"
496 | "@parcel/workers" "2.15.2"
497 |
498 | "@parcel/graph@3.5.2":
499 | version "3.5.2"
500 | resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-3.5.2.tgz#d6e1997999dc8f9df37bfff3de376adfe7ecf7c1"
501 | integrity sha512-SsKKRPotNALU5R5r5WOsP+6FsuaNkk9L0Bmu1UzeyyrHiQPO1OVBYCsX+NtsGDAdDX7oOkGqgfkavJHrAG/BFA==
502 | dependencies:
503 | "@parcel/feature-flags" "2.15.2"
504 | nullthrows "^1.1.1"
505 |
506 | "@parcel/logger@2.15.2":
507 | version "2.15.2"
508 | resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.15.2.tgz#e9aae2cd38debdb20c17f2d42c36efbfe971a250"
509 | integrity sha512-naF3dXcvO1lZvtCi6kCTaXhB1cqRwWkRifQRfEei+yp0QZqZF9dmWwZzMOefst/PTl3RaW014vrwFtiegdqsbQ==
510 | dependencies:
511 | "@parcel/diagnostic" "2.15.2"
512 | "@parcel/events" "2.15.2"
513 |
514 | "@parcel/markdown-ansi@2.15.2":
515 | version "2.15.2"
516 | resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.15.2.tgz#0836e1b92c50fb2054b8e36696447c0966dc58e7"
517 | integrity sha512-qioxe3Gw/khhrZXeF3tmJeChoq70prxGqVhJylsnGimxHbxjLo3i8Jo8Thi36GiGcOTYSeyF/2tMo9BW2t2vqA==
518 | dependencies:
519 | chalk "^4.1.2"
520 |
521 | "@parcel/namer-default@2.15.2":
522 | version "2.15.2"
523 | resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.15.2.tgz#f48167886cc17fac217cc44043d8a7a9c82441fb"
524 | integrity sha512-2JtJjqKlJEv34OsZdyfAiRtTwNB/ulsStokCSB/fNCkfJPMtgWHDLFz17O7evJbWIoS1gQbIsmeS5GiMBfWdFw==
525 | dependencies:
526 | "@parcel/diagnostic" "2.15.2"
527 | "@parcel/plugin" "2.15.2"
528 | nullthrows "^1.1.1"
529 |
530 | "@parcel/node-resolver-core@3.6.2":
531 | version "3.6.2"
532 | resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.6.2.tgz#ab17b9c7f17b2bc1185a7e90fff78ded3fa46e5d"
533 | integrity sha512-MOWpFAuKnVMSZSoXZ9OG1Z7BNSW9IVnDA3DM3c8UYrSR8My7Wng0aen0MyjC3s98N1FEwCodESGfu0+7PpZOIA==
534 | dependencies:
535 | "@mischnic/json-sourcemap" "^0.1.1"
536 | "@parcel/diagnostic" "2.15.2"
537 | "@parcel/fs" "2.15.2"
538 | "@parcel/rust" "2.15.2"
539 | "@parcel/utils" "2.15.2"
540 | nullthrows "^1.1.1"
541 | semver "^7.7.1"
542 |
543 | "@parcel/optimizer-css@2.15.2":
544 | version "2.15.2"
545 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.15.2.tgz#1fac1fbbe98e5d968dc7dbf466c2155621f8237d"
546 | integrity sha512-czLiJPe2T2QXuGO3xBIM1a1OnR/UhTwY1efCZzo7CofzklNRu33CDLZuWC2Re/JK1+dO4fYBOs0rdWmGFB5acg==
547 | dependencies:
548 | "@parcel/diagnostic" "2.15.2"
549 | "@parcel/plugin" "2.15.2"
550 | "@parcel/source-map" "^2.1.1"
551 | "@parcel/utils" "2.15.2"
552 | browserslist "^4.24.5"
553 | lightningcss "^1.30.1"
554 | nullthrows "^1.1.1"
555 |
556 | "@parcel/optimizer-html@2.15.2":
557 | version "2.15.2"
558 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-html/-/optimizer-html-2.15.2.tgz#a7bd450eaf0c9bb7b78a97ab0626d4645bbf6819"
559 | integrity sha512-7jcvytsOfvdpXIehkZDD9nYzF5V8Dk6JULffDPA03deB8aiFhvPPXr2gr5h3hc/ZvO220dfAJ63Ie622y0BNrQ==
560 | dependencies:
561 | "@parcel/plugin" "2.15.2"
562 | "@parcel/rust" "2.15.2"
563 | "@parcel/utils" "2.15.2"
564 |
565 | "@parcel/optimizer-image@2.15.2":
566 | version "2.15.2"
567 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.15.2.tgz#f0df41bdd340a721a8e5e75ff81176dbe12bede6"
568 | integrity sha512-KCm70vpyIPO9Ml1ZDp2zg8ghPFUDqZ5zu1ZwLwm3SpP/rZYIb6Y/hPTVz/D17yJp6m4bBUVPNLI6Nl2Li4rktg==
569 | dependencies:
570 | "@parcel/diagnostic" "2.15.2"
571 | "@parcel/plugin" "2.15.2"
572 | "@parcel/rust" "2.15.2"
573 | "@parcel/utils" "2.15.2"
574 | "@parcel/workers" "2.15.2"
575 |
576 | "@parcel/optimizer-svg@2.15.2":
577 | version "2.15.2"
578 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-svg/-/optimizer-svg-2.15.2.tgz#70102cc380a603ae7f8c8cb680f285da5887fd37"
579 | integrity sha512-qyOt5BliHB1Dvi8c9h/95qzC80+7gw3ygMRM+avzuhESLlsGimktBBMHi+L6S1TQFjcHsorCkpcTfu48Vx6hUw==
580 | dependencies:
581 | "@parcel/plugin" "2.15.2"
582 | "@parcel/rust" "2.15.2"
583 | "@parcel/utils" "2.15.2"
584 |
585 | "@parcel/optimizer-swc@2.15.2":
586 | version "2.15.2"
587 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-swc/-/optimizer-swc-2.15.2.tgz#9222664e10c298e4159cc3263aaa304aea1aeabc"
588 | integrity sha512-Ej8Y0VkNRUl7jyX4Xd9C8vTHqHfPXH3kAaEndrc7K1ZfvGeIzw/7OytFJeyJ/KbEIW7XWWtd2r7KaFiEG/8SJA==
589 | dependencies:
590 | "@parcel/diagnostic" "2.15.2"
591 | "@parcel/plugin" "2.15.2"
592 | "@parcel/source-map" "^2.1.1"
593 | "@parcel/utils" "2.15.2"
594 | "@swc/core" "^1.11.24"
595 | nullthrows "^1.1.1"
596 |
597 | "@parcel/package-manager@2.15.2":
598 | version "2.15.2"
599 | resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.15.2.tgz#4b3503cae2f9cc08d04a25357d8c8a8098096ceb"
600 | integrity sha512-0n8QupNyXp9CJZV6LohBpAqopLecQrave4kHG/T9CeCeqlJcQnYs+N+zio4mPlv7jXpnJHy+CF96Ce2wy/n1+Q==
601 | dependencies:
602 | "@parcel/diagnostic" "2.15.2"
603 | "@parcel/fs" "2.15.2"
604 | "@parcel/logger" "2.15.2"
605 | "@parcel/node-resolver-core" "3.6.2"
606 | "@parcel/types" "2.15.2"
607 | "@parcel/utils" "2.15.2"
608 | "@parcel/workers" "2.15.2"
609 | "@swc/core" "^1.11.24"
610 | semver "^7.7.1"
611 |
612 | "@parcel/packager-css@2.15.2":
613 | version "2.15.2"
614 | resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.15.2.tgz#915af6716aecbc1daba603e455c3e4fab8a6eaa9"
615 | integrity sha512-LZrFXC8bj7isdfKZIPS8OhFUWgZNmGXZJVfl7KLUD4D8GfNX0yKxBb4wtdfuQjlr1KMyw0WluchTXads4oVcMg==
616 | dependencies:
617 | "@parcel/diagnostic" "2.15.2"
618 | "@parcel/plugin" "2.15.2"
619 | "@parcel/source-map" "^2.1.1"
620 | "@parcel/utils" "2.15.2"
621 | lightningcss "^1.30.1"
622 | nullthrows "^1.1.1"
623 |
624 | "@parcel/packager-html@2.15.2":
625 | version "2.15.2"
626 | resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.15.2.tgz#18ef56dedeb3229b5c1eb772178b2f2659d029b4"
627 | integrity sha512-+uvMAZW3r2h1IS+UD3QfCmcFwJb3pPPyQOGK/ks5pYcY0Bqxfvco+5vAbMBofZ6b6RS9YCUvBtJbe1FFx4A3Jw==
628 | dependencies:
629 | "@parcel/plugin" "2.15.2"
630 | "@parcel/rust" "2.15.2"
631 | "@parcel/types" "2.15.2"
632 | "@parcel/utils" "2.15.2"
633 |
634 | "@parcel/packager-js@2.15.2":
635 | version "2.15.2"
636 | resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.15.2.tgz#136cbebd17c34ffa6d7586760c702c8ab28a3320"
637 | integrity sha512-kEXuKduZH/ynxm5zOUZSp6kV+/eyKbHn+zILXfFB7VeHuNyATfm8GTcSUhLYFHAoOncXorE51KI6KDMuKPejjA==
638 | dependencies:
639 | "@parcel/diagnostic" "2.15.2"
640 | "@parcel/plugin" "2.15.2"
641 | "@parcel/rust" "2.15.2"
642 | "@parcel/source-map" "^2.1.1"
643 | "@parcel/types" "2.15.2"
644 | "@parcel/utils" "2.15.2"
645 | globals "^13.24.0"
646 | nullthrows "^1.1.1"
647 |
648 | "@parcel/packager-raw@2.15.2":
649 | version "2.15.2"
650 | resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.15.2.tgz#b625eb266ed89f315cb1a7de2c17c30510e79397"
651 | integrity sha512-S4Gve8k9+qUj2c3wmbNmMQNqwsJ6E6o7ww/Z3CZ1M1i6UcegRVnK1usElw+6+j2L1sXdt/6pIUZvCg3DA9j3sA==
652 | dependencies:
653 | "@parcel/plugin" "2.15.2"
654 |
655 | "@parcel/packager-svg@2.15.2":
656 | version "2.15.2"
657 | resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.15.2.tgz#d2067b0e9e246828d9d94aab889a9ead2b80491a"
658 | integrity sha512-oTdoPl1mcJ0JeKPz5/ZZFlM+UM9YNsutRm8l6H2k6dcht2mbOt8e0OZQcRIiHmTcY8eEsF3bXmo/qXWB+PcihA==
659 | dependencies:
660 | "@parcel/plugin" "2.15.2"
661 | "@parcel/rust" "2.15.2"
662 | "@parcel/types" "2.15.2"
663 | "@parcel/utils" "2.15.2"
664 |
665 | "@parcel/packager-wasm@2.15.2":
666 | version "2.15.2"
667 | resolved "https://registry.yarnpkg.com/@parcel/packager-wasm/-/packager-wasm-2.15.2.tgz#6ae2abab1749dfb3742cece0d569c913a5d58b32"
668 | integrity sha512-LqDdXeC/cbjGc4qZjOJvpx4PmuQL0+kQVmO3AvnUIee+C2T2LgdTG7qhzJGJcihdvkvxZjKZI9fQgrjy9EFDuA==
669 | dependencies:
670 | "@parcel/plugin" "2.15.2"
671 |
672 | "@parcel/plugin@2.15.2":
673 | version "2.15.2"
674 | resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.15.2.tgz#cdc5746084c632631b538372f81486154026c2c2"
675 | integrity sha512-5ii1OpD/lGdpvy5AS1jChpCwEZP0eFaucy8szOjmfl4oZIeaHRHbZ5R0/3O1Hy8tY1IJF87HUKd+XV0iyD48zA==
676 | dependencies:
677 | "@parcel/types" "2.15.2"
678 |
679 | "@parcel/profiler@2.15.2":
680 | version "2.15.2"
681 | resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.15.2.tgz#9b4fe21fc21c513dc2637121dc04b9be11b219e5"
682 | integrity sha512-hLTI6TIRr/tGgjTbsCqW4Avl2x8FMAHLDlDhNYjivX6ccfZmilEJnIcdKr2QtdgcaSulfRLTd5bt6uJWJ2ecKg==
683 | dependencies:
684 | "@parcel/diagnostic" "2.15.2"
685 | "@parcel/events" "2.15.2"
686 | "@parcel/types-internal" "2.15.2"
687 | chrome-trace-event "^1.0.2"
688 |
689 | "@parcel/reporter-cli@2.15.2":
690 | version "2.15.2"
691 | resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.15.2.tgz#5eff7d003cb43fa6e801400e11cb9c6973021f36"
692 | integrity sha512-R2WuHr+0FafsR9WNibR8ssyX8bHwXzMA91OdmeLMaAG5Dc/xv6yTIZuvOCdlCAfbBkcRiMnLWTQ3hQI1bqkC4g==
693 | dependencies:
694 | "@parcel/plugin" "2.15.2"
695 | "@parcel/types" "2.15.2"
696 | "@parcel/utils" "2.15.2"
697 | chalk "^4.1.2"
698 | term-size "^2.2.1"
699 |
700 | "@parcel/reporter-dev-server@2.15.2":
701 | version "2.15.2"
702 | resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.15.2.tgz#63cc58d0c2863298cbeb50599378e291d39a8d52"
703 | integrity sha512-xJzb+IfcZfD2Ml4GYhHFovQ4vbWpFP/bd9cM9TuzyfCbaaf0NEN18uY3kRFCUDYOWs7aLOMzqL3eI5Hw6zh+Pw==
704 | dependencies:
705 | "@parcel/codeframe" "2.15.2"
706 | "@parcel/plugin" "2.15.2"
707 | "@parcel/source-map" "^2.1.1"
708 | "@parcel/utils" "2.15.2"
709 |
710 | "@parcel/reporter-tracer@2.15.2":
711 | version "2.15.2"
712 | resolved "https://registry.yarnpkg.com/@parcel/reporter-tracer/-/reporter-tracer-2.15.2.tgz#5da3c419c743ca60c088b4b86fe44bc182b5ca5b"
713 | integrity sha512-jtmNPMXVuuqO4WmIgYifAtKhMWblAZmRnqc5dVZfUBWPeqGKrbH2k89cYtZfvMbLon8/Glv6WDOt91oyDfjuKg==
714 | dependencies:
715 | "@parcel/plugin" "2.15.2"
716 | "@parcel/utils" "2.15.2"
717 | chrome-trace-event "^1.0.3"
718 | nullthrows "^1.1.1"
719 |
720 | "@parcel/resolver-default@2.15.2":
721 | version "2.15.2"
722 | resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.15.2.tgz#8c0836a9eee9ce3135708d76a332fe37f91251dd"
723 | integrity sha512-CuCCPEu3jwyLplbLDrahq0CstmIHchKefmX0JGpqCJBJBVdO89SHV5hUr8Se7hfy8uamD41wW10d51oAmyjXMA==
724 | dependencies:
725 | "@parcel/node-resolver-core" "3.6.2"
726 | "@parcel/plugin" "2.15.2"
727 |
728 | "@parcel/runtime-browser-hmr@2.15.2":
729 | version "2.15.2"
730 | resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.15.2.tgz#84371e4d6bcf89635bd331295fa0f60fafece9a5"
731 | integrity sha512-4QtuKAT3NphDrGpRVXyGOrG/gR6cjLIqPkqamTEuAVc13bmjK9XJ5Q4l1L3kjIIlQrRPg9MlHJcZ7VR3PuWWRQ==
732 | dependencies:
733 | "@parcel/plugin" "2.15.2"
734 | "@parcel/utils" "2.15.2"
735 |
736 | "@parcel/runtime-js@2.15.2":
737 | version "2.15.2"
738 | resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.15.2.tgz#ceced258f619184d240a25c68143443d9a8511fc"
739 | integrity sha512-5GGL/7rH6N54u7lAjX8mJKsumFiCyUcpz9wbygG4gkzMcRmGRnp+tctKI9f0GPfcMfKhdypOHfduc5SAuMX03w==
740 | dependencies:
741 | "@parcel/diagnostic" "2.15.2"
742 | "@parcel/plugin" "2.15.2"
743 | "@parcel/utils" "2.15.2"
744 | nullthrows "^1.1.1"
745 |
746 | "@parcel/runtime-rsc@2.15.2":
747 | version "2.15.2"
748 | resolved "https://registry.yarnpkg.com/@parcel/runtime-rsc/-/runtime-rsc-2.15.2.tgz#e61d76cfa37a41568d061bb63dc24922e9afdcb4"
749 | integrity sha512-k0cYvrPUXpvV+neplTkJ1P/LkJzQmtF4eU3js+/kzyOU3zhUSgrLNHJmj6ibuWVYHENW2QtasvpsXjvE2knqTg==
750 | dependencies:
751 | "@parcel/plugin" "2.15.2"
752 | "@parcel/rust" "2.15.2"
753 | "@parcel/utils" "2.15.2"
754 | nullthrows "^1.1.1"
755 |
756 | "@parcel/runtime-service-worker@2.15.2":
757 | version "2.15.2"
758 | resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.15.2.tgz#f316372bee54d9a01f81e08a5bc929e9151e248c"
759 | integrity sha512-5+nV46pqa+7xFscLr4NRSeyXR8i+PSOoECRUzrv4UJRVbeCeE4bfqMYXs+rMbSrBillOLZyydNUQUT56xo9W6A==
760 | dependencies:
761 | "@parcel/plugin" "2.15.2"
762 | "@parcel/utils" "2.15.2"
763 | nullthrows "^1.1.1"
764 |
765 | "@parcel/rust-darwin-arm64@2.15.2":
766 | version "2.15.2"
767 | resolved "https://registry.yarnpkg.com/@parcel/rust-darwin-arm64/-/rust-darwin-arm64-2.15.2.tgz#e48e39f9bc3d22c206a40549218b2ab92233674e"
768 | integrity sha512-IK5mo/7bNym1ODMWD92D2URGcAq2K/9BasRlfjWI/Gh74l3lH4EFadUfgM88L+MVCV3WTg8ht5ZA0Iyp+IQ1JQ==
769 |
770 | "@parcel/rust-darwin-x64@2.15.2":
771 | version "2.15.2"
772 | resolved "https://registry.yarnpkg.com/@parcel/rust-darwin-x64/-/rust-darwin-x64-2.15.2.tgz#2139173951bd84716de0ab3145b7ebcd4556dc25"
773 | integrity sha512-J30ukJXCzXsYNlYvYsaPEAEzfCZGXVIkXtPSVpWPwcaReqFUyT2bm4I8DHoeas0JwMNaeNlJhksaJA/iomqlwA==
774 |
775 | "@parcel/rust-linux-arm-gnueabihf@2.15.2":
776 | version "2.15.2"
777 | resolved "https://registry.yarnpkg.com/@parcel/rust-linux-arm-gnueabihf/-/rust-linux-arm-gnueabihf-2.15.2.tgz#9dad08fff94b702cfc88f570bdda62f938852a0e"
778 | integrity sha512-WpPddkviw8IkRRnT/dRyD3Uzvy6Yuoy5vvtDmpnrR2bJnEz5uQI3TlhMtQo7R+j6aIrDsGFJKBeo9Z0ga0ebNQ==
779 |
780 | "@parcel/rust-linux-arm64-gnu@2.15.2":
781 | version "2.15.2"
782 | resolved "https://registry.yarnpkg.com/@parcel/rust-linux-arm64-gnu/-/rust-linux-arm64-gnu-2.15.2.tgz#023a01dab40374648135758ef7725fae75d54a80"
783 | integrity sha512-RzD7Gw0QqyUoWaVrtCU+v5J5pg6bybVNknqlEY4jfcJDgJHsM1V91DwJwxnI4ikG/uMedl0I40dl59x/Vo01Ow==
784 |
785 | "@parcel/rust-linux-arm64-musl@2.15.2":
786 | version "2.15.2"
787 | resolved "https://registry.yarnpkg.com/@parcel/rust-linux-arm64-musl/-/rust-linux-arm64-musl-2.15.2.tgz#0ca91c7c7565c25d2e2c35c7734135bcd4f3da29"
788 | integrity sha512-mWoL7kCITrEOO0GQ+LqGUylX+6b3nsV60Lzrz2N0Pgzz3EbGS0d4gDKkjxpi6BoR+h4KL7nLhj4hhbm0OHIc4A==
789 |
790 | "@parcel/rust-linux-x64-gnu@2.15.2":
791 | version "2.15.2"
792 | resolved "https://registry.yarnpkg.com/@parcel/rust-linux-x64-gnu/-/rust-linux-x64-gnu-2.15.2.tgz#d4b5272c50cf9fc3f7d5317de7147891f2633293"
793 | integrity sha512-aI8bKZTEZNYmgURiAfrgpmaoEArnMRvosfsOKnGykTjmHgsBxO/CGguFj5a4wlAZTVWcTGfs4krnUKtF9Hw6Rw==
794 |
795 | "@parcel/rust-linux-x64-musl@2.15.2":
796 | version "2.15.2"
797 | resolved "https://registry.yarnpkg.com/@parcel/rust-linux-x64-musl/-/rust-linux-x64-musl-2.15.2.tgz#30cd063b408856c1784676e376f1bf799fbce563"
798 | integrity sha512-FpQOraPTjGfbHipjdbYpQLlMIRDoVL+Kl9ak+6mt0SbvP3QaXGosQXyhw0ZoNszqVLjIwC0OHEjAHdtcO6ZUvQ==
799 |
800 | "@parcel/rust-win32-x64-msvc@2.15.2":
801 | version "2.15.2"
802 | resolved "https://registry.yarnpkg.com/@parcel/rust-win32-x64-msvc/-/rust-win32-x64-msvc-2.15.2.tgz#fd858deb0c4728b1cea53b97bda8db60e69b491f"
803 | integrity sha512-aSXkPc+KYAT6MnYgw2urXuDvipPkD90uJBKtSn3MY+fGOfzEluK7j0F5NdH88oTzrGVhRQxnxfe3Fc+IRhsaFQ==
804 |
805 | "@parcel/rust@2.15.2":
806 | version "2.15.2"
807 | resolved "https://registry.yarnpkg.com/@parcel/rust/-/rust-2.15.2.tgz#5ec0f6a0d83b4ed942ca0efd2d73f9a2673702fb"
808 | integrity sha512-6ZIVsSnkwxvDDVaxiYK4bWtVaJBYaFQuRvcxfCMQHEzFpWl9mdZVbCs3+g69Ere7a3e2sk87B41d/FIhoaz5xw==
809 | optionalDependencies:
810 | "@parcel/rust-darwin-arm64" "2.15.2"
811 | "@parcel/rust-darwin-x64" "2.15.2"
812 | "@parcel/rust-linux-arm-gnueabihf" "2.15.2"
813 | "@parcel/rust-linux-arm64-gnu" "2.15.2"
814 | "@parcel/rust-linux-arm64-musl" "2.15.2"
815 | "@parcel/rust-linux-x64-gnu" "2.15.2"
816 | "@parcel/rust-linux-x64-musl" "2.15.2"
817 | "@parcel/rust-win32-x64-msvc" "2.15.2"
818 |
819 | "@parcel/source-map@^2.1.1":
820 | version "2.1.1"
821 | resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.1.1.tgz#fb193b82dba6dd62cc7a76b326f57bb35000a782"
822 | integrity sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==
823 | dependencies:
824 | detect-libc "^1.0.3"
825 |
826 | "@parcel/transformer-babel@2.15.2":
827 | version "2.15.2"
828 | resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.15.2.tgz#44c37a5ac5fbf7aaae1c262bf95488f76367126b"
829 | integrity sha512-9oGx0wJhKY+Lh6PLY05m36IS6r6oOxpAQZhna2S5AYcfcf10ZsL8afOJTE8JBXbfg35dp97jeB4iuSHYTXr6NA==
830 | dependencies:
831 | "@parcel/diagnostic" "2.15.2"
832 | "@parcel/plugin" "2.15.2"
833 | "@parcel/source-map" "^2.1.1"
834 | "@parcel/utils" "2.15.2"
835 | browserslist "^4.24.5"
836 | json5 "^2.2.3"
837 | nullthrows "^1.1.1"
838 | semver "^7.7.1"
839 |
840 | "@parcel/transformer-css@2.15.2":
841 | version "2.15.2"
842 | resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.15.2.tgz#60046f12ac0f3484cd7d524e7998074ef9efaa2f"
843 | integrity sha512-NlybdCOr8r0LiPc7FIkeZp0mjfVB0Ht9B9eM3gUf2rOA1iM9/KGZNlu1AKVInyLRerybFqrGwHgx/qMGmbL3JA==
844 | dependencies:
845 | "@parcel/diagnostic" "2.15.2"
846 | "@parcel/plugin" "2.15.2"
847 | "@parcel/source-map" "^2.1.1"
848 | "@parcel/utils" "2.15.2"
849 | browserslist "^4.24.5"
850 | lightningcss "^1.30.1"
851 | nullthrows "^1.1.1"
852 |
853 | "@parcel/transformer-html@2.15.2":
854 | version "2.15.2"
855 | resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.15.2.tgz#c4b8b656fa539ade1311059570018a1c41c7126a"
856 | integrity sha512-P0xptyNVKTgXr6HovvL3kCUw7eA3s2aZpAdliOhnFfzXUCG6Na/XN8TW5TOiNo41bcxsYwLpfrZz0N20AVJ4qw==
857 | dependencies:
858 | "@parcel/diagnostic" "2.15.2"
859 | "@parcel/plugin" "2.15.2"
860 | "@parcel/rust" "2.15.2"
861 |
862 | "@parcel/transformer-image@2.15.2":
863 | version "2.15.2"
864 | resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.15.2.tgz#4e92565baa582848cb4df17b79bc8ab1220784a2"
865 | integrity sha512-5WpKkEDMppaO21MO/5Rikr+DDRjkh3mPalpnH/DQLNEv0fKOakSNWDRR7FuV5ozSVREeQurTvbb4tAFAxOQx1w==
866 | dependencies:
867 | "@parcel/plugin" "2.15.2"
868 | "@parcel/utils" "2.15.2"
869 | "@parcel/workers" "2.15.2"
870 | nullthrows "^1.1.1"
871 |
872 | "@parcel/transformer-js@2.15.2":
873 | version "2.15.2"
874 | resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.15.2.tgz#c11e23d67b4d6d6f36730426ca5d7512d8358750"
875 | integrity sha512-zVDc5Pc3/Cbn3GGsGjj+k/WjQLJCdwsKlYfpYiTXvSuXDpb4FCcYgr6F+wbSHb+/VikYIVH1RwH4kjCuIuNtew==
876 | dependencies:
877 | "@parcel/diagnostic" "2.15.2"
878 | "@parcel/plugin" "2.15.2"
879 | "@parcel/rust" "2.15.2"
880 | "@parcel/source-map" "^2.1.1"
881 | "@parcel/utils" "2.15.2"
882 | "@parcel/workers" "2.15.2"
883 | "@swc/helpers" "^0.5.0"
884 | browserslist "^4.24.5"
885 | nullthrows "^1.1.1"
886 | regenerator-runtime "^0.14.1"
887 | semver "^7.7.1"
888 |
889 | "@parcel/transformer-json@2.15.2":
890 | version "2.15.2"
891 | resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.15.2.tgz#d40fafb918e2710cdb0bf0f09367babe731e60dc"
892 | integrity sha512-ycGhhk+DeipU0jtdGZesIx0X++h3qLkT77N6B2cTyD+BXAlKYUh++QIaLyDgTu7VwqSIt5msDg5jLWdamH7Rkw==
893 | dependencies:
894 | "@parcel/plugin" "2.15.2"
895 | json5 "^2.2.3"
896 |
897 | "@parcel/transformer-node@2.15.2":
898 | version "2.15.2"
899 | resolved "https://registry.yarnpkg.com/@parcel/transformer-node/-/transformer-node-2.15.2.tgz#5824b9cb295eca04530fd423bf380be4bfc0e15e"
900 | integrity sha512-H3IsKE2nVSEnqQH0DtjHQTTPqRw3gdXv9dROlwkU53O3cAIAtHDJYWmmDLMqhLl68vOYTvlkDT03rGrjnk8rDg==
901 | dependencies:
902 | "@parcel/plugin" "2.15.2"
903 |
904 | "@parcel/transformer-postcss@2.15.2":
905 | version "2.15.2"
906 | resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.15.2.tgz#9a276eacc8d070cc181492bf5386c4828e4436d1"
907 | integrity sha512-3vLJqsFhOwsUS6lFnBZhU//OrfdLPM4uPBsm7XDLl45B2+FcW3T2H32uSGW6Ue1q1MawkVeNShuy293luh7gmA==
908 | dependencies:
909 | "@parcel/diagnostic" "2.15.2"
910 | "@parcel/plugin" "2.15.2"
911 | "@parcel/rust" "2.15.2"
912 | "@parcel/utils" "2.15.2"
913 | clone "^2.1.2"
914 | nullthrows "^1.1.1"
915 | postcss-value-parser "^4.2.0"
916 | semver "^7.7.1"
917 |
918 | "@parcel/transformer-posthtml@2.15.2":
919 | version "2.15.2"
920 | resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.15.2.tgz#7b92439d0bad55b7ad42a18833f1d2ea68913a6a"
921 | integrity sha512-khdk3IfQLnlryu695kEDQHsvw02jGSJsbgqHoOdIxEbMltxB1JMfJBOOiTm+JEXXQlgD1ttX59CQD4vC7sIT0Q==
922 | dependencies:
923 | "@parcel/plugin" "2.15.2"
924 | "@parcel/utils" "2.15.2"
925 |
926 | "@parcel/transformer-raw@2.15.2":
927 | version "2.15.2"
928 | resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.15.2.tgz#9737b1f3a392bf46303cd42f428b213700d31d83"
929 | integrity sha512-c/7rzEnpWJJmQbZiwFgL57ETUIIiiySBoVmtuF22yNjGQc1Znthg/ee8pT755UfE1hDCT6Kh/XLWv1Bt3C64CQ==
930 | dependencies:
931 | "@parcel/plugin" "2.15.2"
932 |
933 | "@parcel/transformer-react-refresh-wrap@2.15.2":
934 | version "2.15.2"
935 | resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.15.2.tgz#7d2e368c33afc1ec001ff9067959db3bb0e4eecb"
936 | integrity sha512-ReH5qjJbT1Tj7ZYi1KIck2amNTiWqY6m31Ml3I6JeApg7djnz+EwbzPmbpKkcFmR+wxt82DtQdXO3Y7BOJsZDQ==
937 | dependencies:
938 | "@parcel/error-overlay" "2.15.2"
939 | "@parcel/plugin" "2.15.2"
940 | "@parcel/utils" "2.15.2"
941 | react-refresh "^0.16.0"
942 |
943 | "@parcel/transformer-svg@2.15.2":
944 | version "2.15.2"
945 | resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.15.2.tgz#731057aede2869a0591880d427ab7b716ba4dd80"
946 | integrity sha512-R5Q0JgDtywSmojvqqa6TDmXDbKCfBBgu4tR0mzo3VicEObmiatRT49BFWHbdenfTf5tKpRplfH88leMPuDVVAg==
947 | dependencies:
948 | "@parcel/diagnostic" "2.15.2"
949 | "@parcel/plugin" "2.15.2"
950 | "@parcel/rust" "2.15.2"
951 |
952 | "@parcel/types-internal@2.15.2":
953 | version "2.15.2"
954 | resolved "https://registry.yarnpkg.com/@parcel/types-internal/-/types-internal-2.15.2.tgz#7dbc632dcb8821d193871e4ddd29f9d7dd2336d3"
955 | integrity sha512-nmMpYeG4le49nvr8FsJYGEwhCZxcrm89tvkX8xGod1yXcShEZNWVVY9ezZLKxMrVMdBveqNUW8IZCij5iFDqdQ==
956 | dependencies:
957 | "@parcel/diagnostic" "2.15.2"
958 | "@parcel/feature-flags" "2.15.2"
959 | "@parcel/source-map" "^2.1.1"
960 | utility-types "^3.11.0"
961 |
962 | "@parcel/types@2.15.2":
963 | version "2.15.2"
964 | resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.15.2.tgz#21d4ef0d83af7dac2d61a7aedf8c6c3c450489df"
965 | integrity sha512-APVvBVVG8RIMLN5hERa2POkPkEtrNUqRbQlKpoNYlIYZaYxKzb9+4MH4cVkmkGfYk3FGU3K5RnxSxMMWsu4tdw==
966 | dependencies:
967 | "@parcel/types-internal" "2.15.2"
968 | "@parcel/workers" "2.15.2"
969 |
970 | "@parcel/utils@2.15.2":
971 | version "2.15.2"
972 | resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.15.2.tgz#fa5292c17064105e0266c7df5064dc3434532de8"
973 | integrity sha512-SQ77yZyeLZf5Teq5aMAViuXKoN7JRnYZ7Pdere1FD8ZuS7E34THA4jjJKxKu9Bqtezgm+gpN1gMbSKMBfbmIZA==
974 | dependencies:
975 | "@parcel/codeframe" "2.15.2"
976 | "@parcel/diagnostic" "2.15.2"
977 | "@parcel/logger" "2.15.2"
978 | "@parcel/markdown-ansi" "2.15.2"
979 | "@parcel/rust" "2.15.2"
980 | "@parcel/source-map" "^2.1.1"
981 | chalk "^4.1.2"
982 | nullthrows "^1.1.1"
983 |
984 | "@parcel/watcher-android-arm64@2.5.0":
985 | version "2.5.0"
986 | resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz#e32d3dda6647791ee930556aee206fcd5ea0fb7a"
987 | integrity sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==
988 |
989 | "@parcel/watcher-darwin-arm64@2.5.0":
990 | version "2.5.0"
991 | resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz#0d9e680b7e9ec1c8f54944f1b945aa8755afb12f"
992 | integrity sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==
993 |
994 | "@parcel/watcher-darwin-x64@2.5.0":
995 | version "2.5.0"
996 | resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz#f9f1d5ce9d5878d344f14ef1856b7a830c59d1bb"
997 | integrity sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==
998 |
999 | "@parcel/watcher-freebsd-x64@2.5.0":
1000 | version "2.5.0"
1001 | resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz#2b77f0c82d19e84ff4c21de6da7f7d096b1a7e82"
1002 | integrity sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==
1003 |
1004 | "@parcel/watcher-linux-arm-glibc@2.5.0":
1005 | version "2.5.0"
1006 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz#92ed322c56dbafa3d2545dcf2803334aee131e42"
1007 | integrity sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==
1008 |
1009 | "@parcel/watcher-linux-arm-musl@2.5.0":
1010 | version "2.5.0"
1011 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz#cd48e9bfde0cdbbd2ecd9accfc52967e22f849a4"
1012 | integrity sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==
1013 |
1014 | "@parcel/watcher-linux-arm64-glibc@2.5.0":
1015 | version "2.5.0"
1016 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz#7b81f6d5a442bb89fbabaf6c13573e94a46feb03"
1017 | integrity sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==
1018 |
1019 | "@parcel/watcher-linux-arm64-musl@2.5.0":
1020 | version "2.5.0"
1021 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz#dcb8ff01077cdf59a18d9e0a4dff7a0cfe5fd732"
1022 | integrity sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==
1023 |
1024 | "@parcel/watcher-linux-x64-glibc@2.5.0":
1025 | version "2.5.0"
1026 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz#2e254600fda4e32d83942384d1106e1eed84494d"
1027 | integrity sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==
1028 |
1029 | "@parcel/watcher-linux-x64-musl@2.5.0":
1030 | version "2.5.0"
1031 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz#01fcea60fedbb3225af808d3f0a7b11229792eef"
1032 | integrity sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==
1033 |
1034 | "@parcel/watcher-win32-arm64@2.5.0":
1035 | version "2.5.0"
1036 | resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz#87cdb16e0783e770197e52fb1dc027bb0c847154"
1037 | integrity sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==
1038 |
1039 | "@parcel/watcher-win32-ia32@2.5.0":
1040 | version "2.5.0"
1041 | resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz#778c39b56da33e045ba21c678c31a9f9d7c6b220"
1042 | integrity sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==
1043 |
1044 | "@parcel/watcher-win32-x64@2.5.0":
1045 | version "2.5.0"
1046 | resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz#33873876d0bbc588aacce38e90d1d7480ce81cb7"
1047 | integrity sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==
1048 |
1049 | "@parcel/watcher@^2.0.7":
1050 | version "2.5.0"
1051 | resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.0.tgz#5c88818b12b8de4307a9d3e6dc3e28eba0dfbd10"
1052 | integrity sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==
1053 | dependencies:
1054 | detect-libc "^1.0.3"
1055 | is-glob "^4.0.3"
1056 | micromatch "^4.0.5"
1057 | node-addon-api "^7.0.0"
1058 | optionalDependencies:
1059 | "@parcel/watcher-android-arm64" "2.5.0"
1060 | "@parcel/watcher-darwin-arm64" "2.5.0"
1061 | "@parcel/watcher-darwin-x64" "2.5.0"
1062 | "@parcel/watcher-freebsd-x64" "2.5.0"
1063 | "@parcel/watcher-linux-arm-glibc" "2.5.0"
1064 | "@parcel/watcher-linux-arm-musl" "2.5.0"
1065 | "@parcel/watcher-linux-arm64-glibc" "2.5.0"
1066 | "@parcel/watcher-linux-arm64-musl" "2.5.0"
1067 | "@parcel/watcher-linux-x64-glibc" "2.5.0"
1068 | "@parcel/watcher-linux-x64-musl" "2.5.0"
1069 | "@parcel/watcher-win32-arm64" "2.5.0"
1070 | "@parcel/watcher-win32-ia32" "2.5.0"
1071 | "@parcel/watcher-win32-x64" "2.5.0"
1072 |
1073 | "@parcel/workers@2.15.2":
1074 | version "2.15.2"
1075 | resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.15.2.tgz#f83153399ad560cf072ef4cdc7485c9b64c507b9"
1076 | integrity sha512-uQWM3Zzkk+vzFYrLQvU/oeM1LC6/EDPvpdgtvdwkUqYC6O1Oei+9cWz6Uv5UDCwizeJKt+3PyE2rB9idbEkmsQ==
1077 | dependencies:
1078 | "@parcel/diagnostic" "2.15.2"
1079 | "@parcel/logger" "2.15.2"
1080 | "@parcel/profiler" "2.15.2"
1081 | "@parcel/types-internal" "2.15.2"
1082 | "@parcel/utils" "2.15.2"
1083 | nullthrows "^1.1.1"
1084 |
1085 | "@swc/core-darwin-arm64@1.11.24":
1086 | version "1.11.24"
1087 | resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.24.tgz#c9fcc9c4bad0511fed26210449556d2b33fb2d9a"
1088 | integrity sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==
1089 |
1090 | "@swc/core-darwin-x64@1.11.24":
1091 | version "1.11.24"
1092 | resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.11.24.tgz#048ea3ee43281264a62fccb5a944b76d1c56eb24"
1093 | integrity sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==
1094 |
1095 | "@swc/core-linux-arm-gnueabihf@1.11.24":
1096 | version "1.11.24"
1097 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.24.tgz#f01ba657a81c67d8fb9f681712e65abf1324cec6"
1098 | integrity sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==
1099 |
1100 | "@swc/core-linux-arm64-gnu@1.11.24":
1101 | version "1.11.24"
1102 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.24.tgz#9aefca7f7f87c8312c2fa714c1eb731411d8596c"
1103 | integrity sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==
1104 |
1105 | "@swc/core-linux-arm64-musl@1.11.24":
1106 | version "1.11.24"
1107 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.24.tgz#e4805484779bbc59b639eab4f8e45166f3d7a4f7"
1108 | integrity sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==
1109 |
1110 | "@swc/core-linux-x64-gnu@1.11.24":
1111 | version "1.11.24"
1112 | resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.24.tgz#e8d8cc50a49903880944379590b73733e150a5d4"
1113 | integrity sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==
1114 |
1115 | "@swc/core-linux-x64-musl@1.11.24":
1116 | version "1.11.24"
1117 | resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.24.tgz#f3c46212eb8a793f6a42a36b2a9017a9b1462737"
1118 | integrity sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==
1119 |
1120 | "@swc/core-win32-arm64-msvc@1.11.24":
1121 | version "1.11.24"
1122 | resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.24.tgz#b1c3327d81a5f94415ac0b1713e192df1c121fbd"
1123 | integrity sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==
1124 |
1125 | "@swc/core-win32-ia32-msvc@1.11.24":
1126 | version "1.11.24"
1127 | resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.24.tgz#6a944dd6111ec5fae3cf5925b73701e49b109edc"
1128 | integrity sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==
1129 |
1130 | "@swc/core-win32-x64-msvc@1.11.24":
1131 | version "1.11.24"
1132 | resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.24.tgz#eebb5d5ece2710aeb25cc58bd7c5c4c2c046f030"
1133 | integrity sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==
1134 |
1135 | "@swc/core@^1.11.24":
1136 | version "1.11.24"
1137 | resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.11.24.tgz#340425648296964f815c940b8da00fcdb1ff2abd"
1138 | integrity sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==
1139 | dependencies:
1140 | "@swc/counter" "^0.1.3"
1141 | "@swc/types" "^0.1.21"
1142 | optionalDependencies:
1143 | "@swc/core-darwin-arm64" "1.11.24"
1144 | "@swc/core-darwin-x64" "1.11.24"
1145 | "@swc/core-linux-arm-gnueabihf" "1.11.24"
1146 | "@swc/core-linux-arm64-gnu" "1.11.24"
1147 | "@swc/core-linux-arm64-musl" "1.11.24"
1148 | "@swc/core-linux-x64-gnu" "1.11.24"
1149 | "@swc/core-linux-x64-musl" "1.11.24"
1150 | "@swc/core-win32-arm64-msvc" "1.11.24"
1151 | "@swc/core-win32-ia32-msvc" "1.11.24"
1152 | "@swc/core-win32-x64-msvc" "1.11.24"
1153 |
1154 | "@swc/counter@^0.1.3":
1155 | version "0.1.3"
1156 | resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
1157 | integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
1158 |
1159 | "@swc/helpers@^0.5.0":
1160 | version "0.5.15"
1161 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7"
1162 | integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==
1163 | dependencies:
1164 | tslib "^2.8.0"
1165 |
1166 | "@swc/types@^0.1.21":
1167 | version "0.1.21"
1168 | resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.21.tgz#6fcadbeca1d8bc89e1ab3de4948cef12344a38c0"
1169 | integrity sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==
1170 | dependencies:
1171 | "@swc/counter" "^0.1.3"
1172 |
1173 | "@trysound/sax@0.2.0":
1174 | version "0.2.0"
1175 | resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
1176 | integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
1177 |
1178 | "@types/react-dom@19.1.5":
1179 | version "19.1.5"
1180 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.5.tgz#cdfe2c663742887372f54804b16e8dbc26bd794a"
1181 | integrity sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==
1182 |
1183 | "@types/react@19.1.6":
1184 | version "19.1.6"
1185 | resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.6.tgz#dee39f3e1e9a7d693f156a5840570b6d57f325ea"
1186 | integrity sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==
1187 | dependencies:
1188 | csstype "^3.0.2"
1189 |
1190 | ansi-styles@^4.1.0:
1191 | version "4.3.0"
1192 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
1193 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
1194 | dependencies:
1195 | color-convert "^2.0.1"
1196 |
1197 | base-x@^3.0.11:
1198 | version "3.0.11"
1199 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.11.tgz#40d80e2a1aeacba29792ccc6c5354806421287ff"
1200 | integrity sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==
1201 | dependencies:
1202 | safe-buffer "^5.0.1"
1203 |
1204 | boolbase@^1.0.0:
1205 | version "1.0.0"
1206 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
1207 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
1208 |
1209 | braces@^3.0.3:
1210 | version "3.0.3"
1211 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
1212 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
1213 | dependencies:
1214 | fill-range "^7.1.1"
1215 |
1216 | browserslist@^4.24.0:
1217 | version "4.24.3"
1218 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2"
1219 | integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==
1220 | dependencies:
1221 | caniuse-lite "^1.0.30001688"
1222 | electron-to-chromium "^1.5.73"
1223 | node-releases "^2.0.19"
1224 | update-browserslist-db "^1.1.1"
1225 |
1226 | browserslist@^4.24.5:
1227 | version "4.24.5"
1228 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.5.tgz#aa0f5b8560fe81fde84c6dcb38f759bafba0e11b"
1229 | integrity sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==
1230 | dependencies:
1231 | caniuse-lite "^1.0.30001716"
1232 | electron-to-chromium "^1.5.149"
1233 | node-releases "^2.0.19"
1234 | update-browserslist-db "^1.1.3"
1235 |
1236 | caniuse-lite@^1.0.30001688:
1237 | version "1.0.30001690"
1238 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8"
1239 | integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==
1240 |
1241 | caniuse-lite@^1.0.30001716:
1242 | version "1.0.30001718"
1243 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz#dae13a9c80d517c30c6197515a96131c194d8f82"
1244 | integrity sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==
1245 |
1246 | chalk@^4.1.2:
1247 | version "4.1.2"
1248 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
1249 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
1250 | dependencies:
1251 | ansi-styles "^4.1.0"
1252 | supports-color "^7.1.0"
1253 |
1254 | cheerio-select@^2.1.0:
1255 | version "2.1.0"
1256 | resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
1257 | integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
1258 | dependencies:
1259 | boolbase "^1.0.0"
1260 | css-select "^5.1.0"
1261 | css-what "^6.1.0"
1262 | domelementtype "^2.3.0"
1263 | domhandler "^5.0.3"
1264 | domutils "^3.0.1"
1265 |
1266 | cheerio@^1.0.0-rc.12:
1267 | version "1.0.0"
1268 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81"
1269 | integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==
1270 | dependencies:
1271 | cheerio-select "^2.1.0"
1272 | dom-serializer "^2.0.0"
1273 | domhandler "^5.0.3"
1274 | domutils "^3.1.0"
1275 | encoding-sniffer "^0.2.0"
1276 | htmlparser2 "^9.1.0"
1277 | parse5 "^7.1.2"
1278 | parse5-htmlparser2-tree-adapter "^7.0.0"
1279 | parse5-parser-stream "^7.1.2"
1280 | undici "^6.19.5"
1281 | whatwg-mimetype "^4.0.0"
1282 |
1283 | chrome-trace-event@^1.0.2, chrome-trace-event@^1.0.3:
1284 | version "1.0.4"
1285 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b"
1286 | integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==
1287 |
1288 | clone@^2.1.2:
1289 | version "2.1.2"
1290 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
1291 | integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
1292 |
1293 | color-convert@^2.0.1:
1294 | version "2.0.1"
1295 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1296 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1297 | dependencies:
1298 | color-name "~1.1.4"
1299 |
1300 | color-name@~1.1.4:
1301 | version "1.1.4"
1302 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1303 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1304 |
1305 | commander@^12.0.0, commander@^12.1.0:
1306 | version "12.1.0"
1307 | resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
1308 | integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
1309 |
1310 | commander@^7.2.0:
1311 | version "7.2.0"
1312 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
1313 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
1314 |
1315 | convert-source-map@^2.0.0:
1316 | version "2.0.0"
1317 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
1318 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
1319 |
1320 | css-select@^5.1.0:
1321 | version "5.1.0"
1322 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
1323 | integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
1324 | dependencies:
1325 | boolbase "^1.0.0"
1326 | css-what "^6.1.0"
1327 | domhandler "^5.0.2"
1328 | domutils "^3.0.1"
1329 | nth-check "^2.0.1"
1330 |
1331 | css-tree@^2.3.1:
1332 | version "2.3.1"
1333 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
1334 | integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==
1335 | dependencies:
1336 | mdn-data "2.0.30"
1337 | source-map-js "^1.0.1"
1338 |
1339 | css-tree@~2.2.0:
1340 | version "2.2.1"
1341 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032"
1342 | integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==
1343 | dependencies:
1344 | mdn-data "2.0.28"
1345 | source-map-js "^1.0.1"
1346 |
1347 | css-what@^6.1.0:
1348 | version "6.1.0"
1349 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
1350 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
1351 |
1352 | csso@^5.0.5:
1353 | version "5.0.5"
1354 | resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6"
1355 | integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==
1356 | dependencies:
1357 | css-tree "~2.2.0"
1358 |
1359 | csstype@^3.0.2:
1360 | version "3.1.3"
1361 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
1362 | integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
1363 |
1364 | debug@^4.1.0, debug@^4.3.1:
1365 | version "4.4.0"
1366 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
1367 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
1368 | dependencies:
1369 | ms "^2.1.3"
1370 |
1371 | detect-libc@^1.0.3:
1372 | version "1.0.3"
1373 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
1374 | integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
1375 |
1376 | detect-libc@^2.0.1:
1377 | version "2.0.3"
1378 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700"
1379 | integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
1380 |
1381 | detect-libc@^2.0.3:
1382 | version "2.0.4"
1383 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8"
1384 | integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==
1385 |
1386 | dom-serializer@^2.0.0:
1387 | version "2.0.0"
1388 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
1389 | integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
1390 | dependencies:
1391 | domelementtype "^2.3.0"
1392 | domhandler "^5.0.2"
1393 | entities "^4.2.0"
1394 |
1395 | domelementtype@^2.3.0:
1396 | version "2.3.0"
1397 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
1398 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
1399 |
1400 | domhandler@^5.0.2, domhandler@^5.0.3:
1401 | version "5.0.3"
1402 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
1403 | integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
1404 | dependencies:
1405 | domelementtype "^2.3.0"
1406 |
1407 | domutils@^3.0.1, domutils@^3.1.0:
1408 | version "3.2.1"
1409 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.1.tgz#b39f4c390a1ae6f6a2c56a5f5a16d6438b6bce28"
1410 | integrity sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==
1411 | dependencies:
1412 | dom-serializer "^2.0.0"
1413 | domelementtype "^2.3.0"
1414 | domhandler "^5.0.3"
1415 |
1416 | dotenv-expand@^11.0.7:
1417 | version "11.0.7"
1418 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.7.tgz#af695aea007d6fdc84c86cd8d0ad7beb40a0bd08"
1419 | integrity sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==
1420 | dependencies:
1421 | dotenv "^16.4.5"
1422 |
1423 | dotenv@^16.4.5:
1424 | version "16.4.7"
1425 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26"
1426 | integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
1427 |
1428 | dotenv@^16.5.0:
1429 | version "16.5.0"
1430 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.5.0.tgz#092b49f25f808f020050051d1ff258e404c78692"
1431 | integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==
1432 |
1433 | electron-to-chromium@^1.5.149:
1434 | version "1.5.155"
1435 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz#809dd0ae9ae1db87c358e0c0c17c09a2ffc432d1"
1436 | integrity sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==
1437 |
1438 | electron-to-chromium@^1.5.73:
1439 | version "1.5.76"
1440 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz#db20295c5061b68f07c8ea4dfcbd701485d94a3d"
1441 | integrity sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==
1442 |
1443 | encoding-sniffer@^0.2.0:
1444 | version "0.2.0"
1445 | resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5"
1446 | integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==
1447 | dependencies:
1448 | iconv-lite "^0.6.3"
1449 | whatwg-encoding "^3.1.1"
1450 |
1451 | entities@^4.2.0, entities@^4.5.0:
1452 | version "4.5.0"
1453 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
1454 | integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
1455 |
1456 | escalade@^3.2.0:
1457 | version "3.2.0"
1458 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
1459 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
1460 |
1461 | fill-range@^7.1.1:
1462 | version "7.1.1"
1463 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
1464 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
1465 | dependencies:
1466 | to-regex-range "^5.0.1"
1467 |
1468 | gensync@^1.0.0-beta.2:
1469 | version "1.0.0-beta.2"
1470 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1471 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1472 |
1473 | get-port@^4.2.0:
1474 | version "4.2.0"
1475 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119"
1476 | integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==
1477 |
1478 | globals@^11.1.0:
1479 | version "11.12.0"
1480 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1481 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1482 |
1483 | globals@^13.24.0:
1484 | version "13.24.0"
1485 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
1486 | integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
1487 | dependencies:
1488 | type-fest "^0.20.2"
1489 |
1490 | has-flag@^4.0.0:
1491 | version "4.0.0"
1492 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1493 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1494 |
1495 | htmlparser2@^9.1.0:
1496 | version "9.1.0"
1497 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23"
1498 | integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==
1499 | dependencies:
1500 | domelementtype "^2.3.0"
1501 | domhandler "^5.0.3"
1502 | domutils "^3.1.0"
1503 | entities "^4.5.0"
1504 |
1505 | iconv-lite@0.6.3, iconv-lite@^0.6.3:
1506 | version "0.6.3"
1507 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
1508 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
1509 | dependencies:
1510 | safer-buffer ">= 2.1.2 < 3.0.0"
1511 |
1512 | is-extglob@^2.1.1:
1513 | version "2.1.1"
1514 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1515 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1516 |
1517 | is-glob@^4.0.3:
1518 | version "4.0.3"
1519 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1520 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1521 | dependencies:
1522 | is-extglob "^2.1.1"
1523 |
1524 | is-number@^7.0.0:
1525 | version "7.0.0"
1526 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1527 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1528 |
1529 | js-tokens@^4.0.0:
1530 | version "4.0.0"
1531 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1532 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1533 |
1534 | jsesc@^3.0.2:
1535 | version "3.1.0"
1536 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
1537 | integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
1538 |
1539 | json5@^2.2.1, json5@^2.2.3:
1540 | version "2.2.3"
1541 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
1542 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1543 |
1544 | lightningcss-darwin-arm64@1.30.1:
1545 | version "1.30.1"
1546 | resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz#3d47ce5e221b9567c703950edf2529ca4a3700ae"
1547 | integrity sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==
1548 |
1549 | lightningcss-darwin-x64@1.30.1:
1550 | version "1.30.1"
1551 | resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz#e81105d3fd6330860c15fe860f64d39cff5fbd22"
1552 | integrity sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==
1553 |
1554 | lightningcss-freebsd-x64@1.30.1:
1555 | version "1.30.1"
1556 | resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz#a0e732031083ff9d625c5db021d09eb085af8be4"
1557 | integrity sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==
1558 |
1559 | lightningcss-linux-arm-gnueabihf@1.30.1:
1560 | version "1.30.1"
1561 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz#1f5ecca6095528ddb649f9304ba2560c72474908"
1562 | integrity sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==
1563 |
1564 | lightningcss-linux-arm64-gnu@1.30.1:
1565 | version "1.30.1"
1566 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz#eee7799726103bffff1e88993df726f6911ec009"
1567 | integrity sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==
1568 |
1569 | lightningcss-linux-arm64-musl@1.30.1:
1570 | version "1.30.1"
1571 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz#f2e4b53f42892feeef8f620cbb889f7c064a7dfe"
1572 | integrity sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==
1573 |
1574 | lightningcss-linux-x64-gnu@1.30.1:
1575 | version "1.30.1"
1576 | resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz#2fc7096224bc000ebb97eea94aea248c5b0eb157"
1577 | integrity sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==
1578 |
1579 | lightningcss-linux-x64-musl@1.30.1:
1580 | version "1.30.1"
1581 | resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz#66dca2b159fd819ea832c44895d07e5b31d75f26"
1582 | integrity sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==
1583 |
1584 | lightningcss-win32-arm64-msvc@1.30.1:
1585 | version "1.30.1"
1586 | resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz#7d8110a19d7c2d22bfdf2f2bb8be68e7d1b69039"
1587 | integrity sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==
1588 |
1589 | lightningcss-win32-x64-msvc@1.30.1:
1590 | version "1.30.1"
1591 | resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz#fd7dd008ea98494b85d24b4bea016793f2e0e352"
1592 | integrity sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==
1593 |
1594 | lightningcss@^1.30.1:
1595 | version "1.30.1"
1596 | resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.30.1.tgz#78e979c2d595bfcb90d2a8c0eb632fe6c5bfed5d"
1597 | integrity sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==
1598 | dependencies:
1599 | detect-libc "^2.0.3"
1600 | optionalDependencies:
1601 | lightningcss-darwin-arm64 "1.30.1"
1602 | lightningcss-darwin-x64 "1.30.1"
1603 | lightningcss-freebsd-x64 "1.30.1"
1604 | lightningcss-linux-arm-gnueabihf "1.30.1"
1605 | lightningcss-linux-arm64-gnu "1.30.1"
1606 | lightningcss-linux-arm64-musl "1.30.1"
1607 | lightningcss-linux-x64-gnu "1.30.1"
1608 | lightningcss-linux-x64-musl "1.30.1"
1609 | lightningcss-win32-arm64-msvc "1.30.1"
1610 | lightningcss-win32-x64-msvc "1.30.1"
1611 |
1612 | lmdb@2.8.5:
1613 | version "2.8.5"
1614 | resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.8.5.tgz#ce191110c755c0951caa062722e300c703973837"
1615 | integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==
1616 | dependencies:
1617 | msgpackr "^1.9.5"
1618 | node-addon-api "^6.1.0"
1619 | node-gyp-build-optional-packages "5.1.1"
1620 | ordered-binary "^1.4.1"
1621 | weak-lru-cache "^1.2.2"
1622 | optionalDependencies:
1623 | "@lmdb/lmdb-darwin-arm64" "2.8.5"
1624 | "@lmdb/lmdb-darwin-x64" "2.8.5"
1625 | "@lmdb/lmdb-linux-arm" "2.8.5"
1626 | "@lmdb/lmdb-linux-arm64" "2.8.5"
1627 | "@lmdb/lmdb-linux-x64" "2.8.5"
1628 | "@lmdb/lmdb-win32-x64" "2.8.5"
1629 |
1630 | lru-cache@^5.1.1:
1631 | version "5.1.1"
1632 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
1633 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
1634 | dependencies:
1635 | yallist "^3.0.2"
1636 |
1637 | mdn-data@2.0.28:
1638 | version "2.0.28"
1639 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba"
1640 | integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==
1641 |
1642 | mdn-data@2.0.30:
1643 | version "2.0.30"
1644 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
1645 | integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
1646 |
1647 | micromatch@^4.0.5:
1648 | version "4.0.8"
1649 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
1650 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
1651 | dependencies:
1652 | braces "^3.0.3"
1653 | picomatch "^2.3.1"
1654 |
1655 | ms@^2.1.3:
1656 | version "2.1.3"
1657 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1658 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1659 |
1660 | msgpackr-extract@^3.0.2:
1661 | version "3.0.3"
1662 | resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz#e9d87023de39ce714872f9e9504e3c1996d61012"
1663 | integrity sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==
1664 | dependencies:
1665 | node-gyp-build-optional-packages "5.2.2"
1666 | optionalDependencies:
1667 | "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.3"
1668 | "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.3"
1669 | "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.3"
1670 | "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.3"
1671 | "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.3"
1672 | "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.3"
1673 |
1674 | msgpackr@^1.11.2:
1675 | version "1.11.3"
1676 | resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.11.3.tgz#db518224044e58074348b8f2dcd6be7a8d873e53"
1677 | integrity sha512-mNdO4s/W54QCghwGNSqO5ULVJ6QUimP/1hRlWVx5f7frTLaClg+4sBRjUTgP1OrBRgVtkH1tI9vi4Dqg/JX3Kg==
1678 | optionalDependencies:
1679 | msgpackr-extract "^3.0.2"
1680 |
1681 | msgpackr@^1.9.5:
1682 | version "1.11.2"
1683 | resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.11.2.tgz#4463b7f7d68f2e24865c395664973562ad24473d"
1684 | integrity sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==
1685 | optionalDependencies:
1686 | msgpackr-extract "^3.0.2"
1687 |
1688 | node-addon-api@^6.1.0:
1689 | version "6.1.0"
1690 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76"
1691 | integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==
1692 |
1693 | node-addon-api@^7.0.0:
1694 | version "7.1.1"
1695 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
1696 | integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
1697 |
1698 | node-gyp-build-optional-packages@5.1.1:
1699 | version "5.1.1"
1700 | resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz#52b143b9dd77b7669073cbfe39e3f4118bfc603c"
1701 | integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==
1702 | dependencies:
1703 | detect-libc "^2.0.1"
1704 |
1705 | node-gyp-build-optional-packages@5.2.2:
1706 | version "5.2.2"
1707 | resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz#522f50c2d53134d7f3a76cd7255de4ab6c96a3a4"
1708 | integrity sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==
1709 | dependencies:
1710 | detect-libc "^2.0.1"
1711 |
1712 | node-releases@^2.0.19:
1713 | version "2.0.19"
1714 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314"
1715 | integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
1716 |
1717 | nth-check@^2.0.1:
1718 | version "2.1.1"
1719 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
1720 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
1721 | dependencies:
1722 | boolbase "^1.0.0"
1723 |
1724 | nullthrows@^1.1.1:
1725 | version "1.1.1"
1726 | resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
1727 | integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
1728 |
1729 | ordered-binary@^1.4.1:
1730 | version "1.5.3"
1731 | resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.3.tgz#8bee2aa7a82c3439caeb1e80c272fd4cf51170fb"
1732 | integrity sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==
1733 |
1734 | parcel@2.15.2:
1735 | version "2.15.2"
1736 | resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.15.2.tgz#bfe8b4450b45242e3f6d61181ef4d2fe41bd5694"
1737 | integrity sha512-+ZFhK66uYSwEju8gd3d1qDrBO9JzUNjySnjVJHm9M2boHVDOJl0ZcMQNHTQD9Oyhcba6sf3yIQecjNK1+UvpWg==
1738 | dependencies:
1739 | "@parcel/config-default" "2.15.2"
1740 | "@parcel/core" "2.15.2"
1741 | "@parcel/diagnostic" "2.15.2"
1742 | "@parcel/events" "2.15.2"
1743 | "@parcel/feature-flags" "2.15.2"
1744 | "@parcel/fs" "2.15.2"
1745 | "@parcel/logger" "2.15.2"
1746 | "@parcel/package-manager" "2.15.2"
1747 | "@parcel/reporter-cli" "2.15.2"
1748 | "@parcel/reporter-dev-server" "2.15.2"
1749 | "@parcel/reporter-tracer" "2.15.2"
1750 | "@parcel/utils" "2.15.2"
1751 | chalk "^4.1.2"
1752 | commander "^12.1.0"
1753 | get-port "^4.2.0"
1754 |
1755 | parse5-htmlparser2-tree-adapter@^7.0.0:
1756 | version "7.1.0"
1757 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b"
1758 | integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==
1759 | dependencies:
1760 | domhandler "^5.0.3"
1761 | parse5 "^7.0.0"
1762 |
1763 | parse5-parser-stream@^7.1.2:
1764 | version "7.1.2"
1765 | resolved "https://registry.yarnpkg.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1"
1766 | integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==
1767 | dependencies:
1768 | parse5 "^7.0.0"
1769 |
1770 | parse5@^7.0.0, parse5@^7.1.2:
1771 | version "7.2.1"
1772 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a"
1773 | integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==
1774 | dependencies:
1775 | entities "^4.5.0"
1776 |
1777 | picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1:
1778 | version "1.1.1"
1779 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
1780 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
1781 |
1782 | picomatch@^2.3.1:
1783 | version "2.3.1"
1784 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1785 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1786 |
1787 | postcss-value-parser@^4.2.0:
1788 | version "4.2.0"
1789 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1790 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1791 |
1792 | process@0.11.10:
1793 | version "0.11.10"
1794 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1795 | integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
1796 |
1797 | react-refresh@^0.16.0:
1798 | version "0.16.0"
1799 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.16.0.tgz#e7d45625f05c9709466d09348a25d22f79b2ad23"
1800 | integrity sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A==
1801 |
1802 | regenerator-runtime@^0.14.1:
1803 | version "0.14.1"
1804 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
1805 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
1806 |
1807 | safe-buffer@^5.0.1:
1808 | version "5.2.1"
1809 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1810 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1811 |
1812 | "safer-buffer@>= 2.1.2 < 3.0.0":
1813 | version "2.1.2"
1814 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1815 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1816 |
1817 | scriptex-socials@1.8.0:
1818 | version "1.8.0"
1819 | resolved "https://registry.yarnpkg.com/scriptex-socials/-/scriptex-socials-1.8.0.tgz#91288d6df16ec3f75dde1da472f2af2925c14a12"
1820 | integrity sha512-l/ldo7B3CKDwh63Dubx5s3NQsqOE+CRMGy9wgVoEjAk7pAf8gQNr30LXRK+XKlximI79gvLsRycuMaFvQAMQGw==
1821 | dependencies:
1822 | cheerio "^1.0.0-rc.12"
1823 | commander "^12.0.0"
1824 | svgo "^3.3.2"
1825 |
1826 | semver@^6.3.1:
1827 | version "6.3.1"
1828 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
1829 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
1830 |
1831 | semver@^7.7.1:
1832 | version "7.7.2"
1833 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58"
1834 | integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
1835 |
1836 | source-map-js@^1.0.1:
1837 | version "1.2.1"
1838 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
1839 | integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
1840 |
1841 | supports-color@^7.1.0:
1842 | version "7.2.0"
1843 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1844 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1845 | dependencies:
1846 | has-flag "^4.0.0"
1847 |
1848 | svgo@^3.3.2:
1849 | version "3.3.2"
1850 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8"
1851 | integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==
1852 | dependencies:
1853 | "@trysound/sax" "0.2.0"
1854 | commander "^7.2.0"
1855 | css-select "^5.1.0"
1856 | css-tree "^2.3.1"
1857 | css-what "^6.1.0"
1858 | csso "^5.0.5"
1859 | picocolors "^1.0.0"
1860 |
1861 | term-size@^2.2.1:
1862 | version "2.2.1"
1863 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
1864 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
1865 |
1866 | to-regex-range@^5.0.1:
1867 | version "5.0.1"
1868 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1869 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1870 | dependencies:
1871 | is-number "^7.0.0"
1872 |
1873 | tslib@^2.8.0:
1874 | version "2.8.1"
1875 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
1876 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
1877 |
1878 | type-fest@^0.20.2:
1879 | version "0.20.2"
1880 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
1881 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1882 |
1883 | typescript@5.8.3:
1884 | version "5.8.3"
1885 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
1886 | integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
1887 |
1888 | undici@^6.19.5:
1889 | version "6.21.3"
1890 | resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.3.tgz#185752ad92c3d0efe7a7d1f6854a50f83b552d7a"
1891 | integrity sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==
1892 |
1893 | update-browserslist-db@^1.1.1:
1894 | version "1.1.1"
1895 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5"
1896 | integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==
1897 | dependencies:
1898 | escalade "^3.2.0"
1899 | picocolors "^1.1.0"
1900 |
1901 | update-browserslist-db@^1.1.3:
1902 | version "1.1.3"
1903 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420"
1904 | integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
1905 | dependencies:
1906 | escalade "^3.2.0"
1907 | picocolors "^1.1.1"
1908 |
1909 | utility-types@^3.11.0:
1910 | version "3.11.0"
1911 | resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c"
1912 | integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==
1913 |
1914 | weak-lru-cache@^1.2.2:
1915 | version "1.2.2"
1916 | resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19"
1917 | integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==
1918 |
1919 | whatwg-encoding@^3.1.1:
1920 | version "3.1.1"
1921 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5"
1922 | integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==
1923 | dependencies:
1924 | iconv-lite "0.6.3"
1925 |
1926 | whatwg-mimetype@^4.0.0:
1927 | version "4.0.0"
1928 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a"
1929 | integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==
1930 |
1931 | yallist@^3.0.2:
1932 | version "3.1.1"
1933 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
1934 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
1935 |
--------------------------------------------------------------------------------
/eslint.config.mjs:
--------------------------------------------------------------------------------
1 | import globals from 'globals';
2 |
3 | import react from 'eslint-plugin-react';
4 | import prettier from 'eslint-config-prettier';
5 | import reactHooks from 'eslint-plugin-react-hooks';
6 | import tsEsLint from '@typescript-eslint/eslint-plugin';
7 | import tsEsLintParser from '@typescript-eslint/parser';
8 |
9 | export default [
10 | {
11 | files: [
12 | 'src/**/*.{ts,tsx}',
13 | 'demo/**/*.{ts,tsx}',
14 | '__tests__/**/*.{ts,tsx}'
15 | ],
16 | languageOptions: {
17 | globals: {
18 | ...globals.browser,
19 | ...globals.node
20 | },
21 | parser: tsEsLintParser,
22 | parserOptions: {
23 | project: 'tsconfig-lint.json',
24 | sourceType: 'module'
25 | }
26 | },
27 | plugins: {
28 | react,
29 | prettier,
30 | reactHooks,
31 | tsEsLint
32 | },
33 | ignores: ['postcss.config.js'],
34 | rules: {
35 | 'no-console': 'error'
36 | },
37 | settings: {
38 | react: {
39 | version: 'detect'
40 | }
41 | }
42 | }
43 | ];
44 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-round-carousel",
3 | "version": "1.5.0",
4 | "description": "An infinitely scrollable 3D carousel component for React",
5 | "keywords": [
6 | "3D",
7 | "Carousel",
8 | "3D Carousel",
9 | "React Carousel",
10 | "React Component",
11 | "React 3D Carousel",
12 | "React 3D Component"
13 | ],
14 | "homepage": "https://react-round-carousel.atanas.info",
15 | "bugs": {
16 | "url": "https://github.com/scriptex/react-round-carousel/issues",
17 | "email": "hi@atanas.info"
18 | },
19 | "license": "MIT",
20 | "author": "Atanas Atanasov (https://atanas.info)",
21 | "funding": "https://github.com/sponsors/scriptex",
22 | "main": "dist/index.js",
23 | "style": "dist/index.css",
24 | "types": "dist/index.d.ts",
25 | "repository": {
26 | "type": "git",
27 | "url": "github:scriptex/react-round-carousel"
28 | },
29 | "scripts": {
30 | "clear": "rm -rf dist",
31 | "css": "postcss src/index.css -o dist/index.css",
32 | "start": "tsc -w",
33 | "build": "yarn clear && yarn css && tsc",
34 | "test": "jest --env jsdom",
35 | "lint": "yarn lint:ts && yarn lint:css",
36 | "lint:ts": "eslint",
37 | "lint:css": "stylelint ./**/*.css",
38 | "prod": "yarn lint && yarn test && yarn build",
39 | "release-minor": "release-it minor --ci",
40 | "release-patch": "release-it patch --ci",
41 | "release-major": "release-it major --ci",
42 | "changelog-local": "npx auto-changelog"
43 | },
44 | "dependencies": {
45 | "react": "19.1.0",
46 | "react-dom": "19.1.0",
47 | "touchsweep": "2.2.0",
48 | "uuid": "11.1.0"
49 | },
50 | "devDependencies": {
51 | "@testing-library/dom": "10.4.0",
52 | "@testing-library/react": "16.3.0",
53 | "@types/jest": "29.5.14",
54 | "@types/react": "19.1.6",
55 | "@types/react-dom": "19.1.5",
56 | "@types/uuid": "10.0.0",
57 | "@typescript-eslint/eslint-plugin": "8.33.0",
58 | "@typescript-eslint/parser": "8.33.0",
59 | "autoprefixer": "10.4.21",
60 | "eslint": "9.27.0",
61 | "eslint-config-prettier": "10.1.5",
62 | "eslint-plugin-react": "7.37.5",
63 | "eslint-plugin-react-hooks": "5.2.0",
64 | "jest": "29.7.0",
65 | "jest-environment-jsdom": "29.7.0",
66 | "postcss": "8.5.4",
67 | "postcss-cli": "11.0.1",
68 | "release-it": "19.0.3",
69 | "stylelint": "16.20.0",
70 | "stylelint-config-recommended": "16.0.0",
71 | "ts-jest": "29.3.4",
72 | "typescript": "5.8.3"
73 | },
74 | "peerDependencies": {
75 | "react": "^16.9.0 || ^17 || ^18 || ^19",
76 | "react-dom": "^16.9.0 || ^17 || ^18 || ^19",
77 | "touchsweep": "^1 || ^2",
78 | "uuid": "^11.0.0"
79 | },
80 | "jest": {
81 | "moduleFileExtensions": [
82 | "ts",
83 | "tsx",
84 | "js"
85 | ],
86 | "transform": {
87 | "\\.(ts|tsx)$": "ts-jest"
88 | },
89 | "testRegex": "/__tests__/.*\\.(ts|tsx|js)$"
90 | },
91 | "release-it": {
92 | "hooks": {
93 | "after:release": "yarn changelog-local && git add CHANGELOG.md && git commit -m \"Update CHANGELOG.md with the latest changes\" && git push"
94 | },
95 | "git": {
96 | "changelog": "git log --pretty=format:\"* %s (%h)\" ${from}...${to}",
97 | "requireCleanWorkingDir": true,
98 | "requireBranch": false,
99 | "requireUpstream": false,
100 | "requireCommits": false,
101 | "addUntrackedFiles": false,
102 | "commit": true,
103 | "commitMessage": "Release ${version}",
104 | "commitArgs": [],
105 | "tag": true,
106 | "tagName": null,
107 | "tagAnnotation": "Release ${version}",
108 | "tagArgs": [],
109 | "push": true,
110 | "pushArgs": [
111 | "--follow-tags"
112 | ],
113 | "pushRepo": ""
114 | },
115 | "npm": {
116 | "publish": false,
117 | "publishPath": ".",
118 | "tag": null,
119 | "otp": null,
120 | "ignoreVersion": false,
121 | "skipChecks": false,
122 | "timeout": 10
123 | },
124 | "github": {
125 | "release": false,
126 | "releaseName": "Release ${version}",
127 | "releaseNotes": null,
128 | "preRelease": false,
129 | "draft": false,
130 | "tokenRef": "GITHUB_TOKEN",
131 | "assets": null,
132 | "host": null,
133 | "timeout": 0,
134 | "proxy": null,
135 | "skipChecks": false
136 | },
137 | "gitlab": {
138 | "release": false,
139 | "releaseName": "Release ${version}",
140 | "releaseNotes": null,
141 | "tokenRef": "GITLAB_TOKEN",
142 | "assets": null,
143 | "origin": null,
144 | "skipChecks": false
145 | }
146 | },
147 | "browserslist": [
148 | "> 1%",
149 | "last 2 versions"
150 | ]
151 | }
152 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "config:base",
4 | ":automergePatch",
5 | ":automergeMinor",
6 | ":automergeBranch",
7 | ":disableDependencyDashboard",
8 | "group:allNonMajor"
9 | ],
10 | "travis": {
11 | "enabled": true
12 | },
13 | "assignees": ["@scriptex"],
14 | "labels": ["dependencies"],
15 | "rebaseWhen": "conflicted",
16 | "vulnerabilityAlerts": {
17 | "labels": ["security"],
18 | "assignees": ["@scriptex"]
19 | },
20 | "rangeStrategy": "replace",
21 | "major": {
22 | "automerge": false
23 | },
24 | "schedule": ["* * 16,30 * *"]
25 | }
26 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/scriptex/react-round-carousel/542cf8bfa48f4e2f3f67fb42b796b912e06d747a/screenshot.png
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | .carousel {
2 | width: 13.125rem;
3 | height: 13.125rem;
4 | position: relative;
5 | margin: 0 auto;
6 | perspective: 62.5rem;
7 | }
8 |
9 | .carousel__container {
10 | width: 100%;
11 | height: 100%;
12 | position: absolute;
13 | transform-style: preserve-3d;
14 | transition: transform 1s;
15 | }
16 |
17 | .carousel__slide {
18 | position: absolute;
19 | width: 11.875rem;
20 | height: 11.875rem;
21 | left: 0.625rem;
22 | top: 0.625rem;
23 | border: 0.125rem solid;
24 | transition: transform 1s, opacity 1s;
25 | }
26 |
27 | .carousel__slide img {
28 | width: 100%;
29 | height: auto;
30 | display: block;
31 | }
32 |
33 | .carousel__slide-overlay {
34 | color: #fff;
35 | text-align: center;
36 | display: flex;
37 | flex-flow: row wrap;
38 | align-items: center;
39 | justify-content: center;
40 | align-content: center;
41 | position: absolute;
42 | top: 0;
43 | right: 0;
44 | bottom: 0;
45 | left: 0;
46 | opacity: 0;
47 | transition: opacity 0.35s ease-in-out;
48 | background-color: rgba(0, 0, 0, 0.7);
49 | user-select: none;
50 | }
51 |
52 | .carousel__slide-overlay span,
53 | .carousel__slide-overlay strong {
54 | display: block;
55 | flex: 0 0 100%;
56 | }
57 |
58 | .carousel__slide:hover .carousel__slide-overlay {
59 | opacity: 1;
60 | }
61 |
62 | .carousel__controls {
63 | display: flex;
64 | flex-flow: row wrap;
65 | align-items: center;
66 | justify-content: center;
67 | }
68 |
69 | .carousel__control {
70 | font-size: 0;
71 | line-height: 0;
72 | text-indent: -100%;
73 | width: 2.5rem;
74 | height: 2.5rem;
75 | display: block;
76 | position: relative;
77 | border: 1px solid;
78 | margin: 0 2rem;
79 | background: rgba(0, 0, 0, 0.7);
80 | border-radius: 50%;
81 | box-shadow: none;
82 | }
83 |
84 | .carousel__control::before,
85 | .carousel__control::after {
86 | content: '';
87 | display: block;
88 | position: absolute;
89 | top: 0;
90 | right: 0;
91 | bottom: 0;
92 | left: 0;
93 | margin: auto;
94 | }
95 |
96 | .carousel__control::before {
97 | width: 50%;
98 | height: 1px;
99 | background-color: #fff;
100 | }
101 |
102 | .carousel__control::after {
103 | content: '';
104 | width: 0.9375rem;
105 | height: 0.9375rem;
106 | display: inline-block;
107 | vertical-align: middle;
108 | border-color: #fff;
109 | border-style: solid;
110 | border-width: 0 0 1px 1px;
111 | margin: auto;
112 | transform: rotate(-135deg);
113 | transform-origin: 50% 50%;
114 | transition: all 0.35s ease-in-out;
115 | }
116 |
117 | .carousel__control--prev::after {
118 | transform: rotate(45deg);
119 | }
120 |
--------------------------------------------------------------------------------
/src/index.tsx:
--------------------------------------------------------------------------------
1 | import TouchSweep from 'touchsweep';
2 | import { v4 as uuid } from 'uuid';
3 | import {
4 | FC,
5 | useRef,
6 | useMemo,
7 | useState,
8 | useEffect,
9 | LegacyRef,
10 | ReactNode,
11 | forwardRef,
12 | useCallback,
13 | CSSProperties,
14 | useImperativeHandle
15 | } from 'react';
16 |
17 | export type CarouselItem = Readonly<{
18 | alt?: string;
19 | image: string;
20 | content: ReactNode;
21 | onClick?: () => void;
22 | }>;
23 |
24 | export type DecoratedCarouselItem = CarouselItem & Readonly<{ id: string }>;
25 |
26 | export type CarouselProps = Readonly<{
27 | ref?: LegacyRef;
28 | items: CarouselItem[];
29 | itemWidth?: number;
30 | showControls?: boolean;
31 | slideOnClick?: boolean;
32 | classNamePrefix?: string;
33 | nextButtonContent?: string | ReactNode;
34 | prevButtonContent?: string | ReactNode;
35 | }>;
36 |
37 | export type CarouselRef = Readonly<{
38 | next: () => void;
39 | prev: () => void;
40 | getItems: () => DecoratedCarouselItem[];
41 | getSelectedIndex: () => number;
42 | setSelectedIndex: (index: number) => void;
43 | }>;
44 |
45 | export const Carousel: FC = forwardRef(
46 | (
47 | {
48 | items,
49 | itemWidth = 210,
50 | showControls = true,
51 | slideOnClick = false,
52 | classNamePrefix = 'carousel',
53 | prevButtonContent = 'Previous',
54 | nextButtonContent = 'Next'
55 | }: CarouselProps,
56 | CarouselRef
57 | ) => {
58 | const data: DecoratedCarouselItem[] = useMemo(
59 | () =>
60 | items.map(item => ({
61 | ...item,
62 | ...((item as unknown as DecoratedCarouselItem).id
63 | ? ({} as unknown as DecoratedCarouselItem)
64 | : { id: uuid() })
65 | })),
66 | [items]
67 | );
68 |
69 | const len = useMemo(() => data.length, [data.length]);
70 | const theta = useMemo(() => 360 / len, [len]);
71 |
72 | const radius = useMemo(
73 | () => Math.round(itemWidth / 2 / Math.tan(Math.PI / len)),
74 | [itemWidth, len]
75 | );
76 |
77 | const ref = useRef(null);
78 | const [selectedIndex, setSelectedIndex] = useState(0);
79 |
80 | const getSlideStyle = useCallback(
81 | (index: number): CSSProperties => {
82 | const style: CSSProperties = {};
83 |
84 | if (index < len) {
85 | const cellAngle = theta * index;
86 |
87 | style.opacity = 1;
88 | style.transform = `rotateY(${cellAngle}deg) translateZ(${radius}px)`;
89 | } else {
90 | style.opacity = 0;
91 | style.transform = 'none';
92 | }
93 |
94 | return style;
95 | },
96 | [len, radius, theta]
97 | );
98 |
99 | const getItemStyle = useCallback((): CSSProperties => {
100 | const angle = theta * selectedIndex * -1;
101 |
102 | return {
103 | transform: `translateZ(${-1 * radius}px) rotateY(${angle}deg)`
104 | };
105 | }, [radius, selectedIndex, theta]);
106 |
107 | const getClassName = useCallback(
108 | (parts: string | string[]) =>
109 | Array.isArray(parts)
110 | ? parts
111 | .map((part: string) => `${classNamePrefix}${part}`)
112 | .join(' ')
113 | : `${classNamePrefix}${parts}`,
114 | [classNamePrefix]
115 | );
116 |
117 | const prev = useCallback(
118 | () => setSelectedIndex(selectedIndex - 1),
119 | [selectedIndex]
120 | );
121 |
122 | const next = useCallback(
123 | () => setSelectedIndex(selectedIndex + 1),
124 | [selectedIndex]
125 | );
126 |
127 | useEffect(() => {
128 | const area = ref?.current;
129 | const touchsweep = new TouchSweep(area ?? undefined);
130 |
131 | area?.addEventListener('swipeleft', next);
132 | area?.addEventListener('swiperight', prev);
133 |
134 | return () => {
135 | touchsweep.unbind();
136 |
137 | area?.removeEventListener('swipeleft', next);
138 | area?.removeEventListener('swiperight', prev);
139 | };
140 | });
141 |
142 | useImperativeHandle(
143 | CarouselRef,
144 | (): CarouselRef => ({
145 | next,
146 | prev,
147 | getItems: () => data,
148 | getSelectedIndex: () => selectedIndex,
149 | setSelectedIndex: (index: number) => setSelectedIndex(index)
150 | })
151 | );
152 |
153 | return (
154 | <>
155 |
156 |
160 | {data.map(
161 | (item: DecoratedCarouselItem, index: number) => (
162 |
{
166 | if (item.onClick) item.onClick();
167 |
168 | if (slideOnClick)
169 | setSelectedIndex(index);
170 | }}
171 | className={getClassName('__slide')}
172 | >
173 |
174 |
175 |
180 | {item.content}
181 |
182 |
183 | )
184 | )}
185 |
186 |
187 |
188 | {showControls && (
189 |
190 |
197 | {prevButtonContent}
198 |
199 |
200 |
207 | {nextButtonContent}
208 |
209 |
210 | )}
211 | >
212 | );
213 | }
214 | );
215 |
216 | export default Carousel;
217 |
--------------------------------------------------------------------------------
/tsconfig-lint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": ["demo/**/*", "__tests__/**/*", "src/**/*"],
4 | "exclude": ["node_modules"]
5 | }
6 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "alwaysStrict": true,
4 | "allowSyntheticDefaultImports": true,
5 | "allowJs": false,
6 | "baseUrl": "./",
7 | "checkJs": false,
8 | "declaration": true,
9 | "emitDecoratorMetadata": true,
10 | "experimentalDecorators": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "importHelpers": true,
13 | "jsx": "react-jsx",
14 | "lib": ["dom", "esNext"],
15 | "module": "commonjs",
16 | "moduleResolution": "node",
17 | "noEmit": false,
18 | "noEmitHelpers": true,
19 | "noEmitOnError": true,
20 | "noFallthroughCasesInSwitch": true,
21 | "noImplicitAny": true,
22 | "noImplicitReturns": true,
23 | "noImplicitThis": true,
24 | "noStrictGenericChecks": false,
25 | "outDir": "./dist",
26 | "pretty": true,
27 | "removeComments": false,
28 | "skipLibCheck": true,
29 | "strict": true,
30 | "strictBindCallApply": true,
31 | "strictFunctionTypes": true,
32 | "strictPropertyInitialization": true,
33 | "strictNullChecks": true,
34 | "sourceMap": false,
35 | "target": "es5",
36 | "typeRoots": ["node_modules/@types"]
37 | },
38 | "compileOnSave": true,
39 | "include": ["src/**/*"],
40 | "exclude": ["node_modules"]
41 | }
42 |
--------------------------------------------------------------------------------