From 2afc5f1143a10a0556b1975d1d724bc415f9abf3 Mon Sep 17 00:00:00 2001 From: duckietm Date: Thu, 25 Apr 2024 11:33:15 +0200 Subject: [PATCH] More updates to V2 --- .editorconfig | 6 + .eslintrc.json | 11 + README.md | 6 + css-utils/CSSColorUtils.js | 49 + package.json | 15 +- postcss.config.js | 8 + prettier.config.js | 7 + public/renderer-config.json | 16 +- public/ui-config.json | 2 +- src/assets/images/buttons/toggle_bg.png | Bin 1678 -> 1866 bytes .../images/chat/chatbubbles/bubble_39.png | Bin 0 -> 1325 bytes .../chat/chatbubbles/bubble_39_pointer.png | Bin 0 -> 105 bytes .../images/chat/chatbubbles/bubble_40.png | Bin 0 -> 1114 bytes .../chat/chatbubbles/bubble_40_pointer.png | Bin 0 -> 105 bytes .../images/chat/chatbubbles/bubble_41.png | Bin 0 -> 359 bytes .../chat/chatbubbles/bubble_41_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_42.png | Bin 0 -> 364 bytes .../chat/chatbubbles/bubble_42_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_43.png | Bin 0 -> 358 bytes .../chat/chatbubbles/bubble_43_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_44.png | Bin 0 -> 357 bytes .../chat/chatbubbles/bubble_44_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_45.png | Bin 0 -> 342 bytes .../chat/chatbubbles/bubble_45_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_46.png | Bin 0 -> 343 bytes .../chat/chatbubbles/bubble_46_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_47.png | Bin 0 -> 1522 bytes .../chat/chatbubbles/bubble_47_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_48.png | Bin 0 -> 361 bytes .../chat/chatbubbles/bubble_48_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_49.png | Bin 0 -> 2289 bytes .../chat/chatbubbles/bubble_49_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_50.png | Bin 0 -> 2292 bytes .../chat/chatbubbles/bubble_50_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_51.png | Bin 0 -> 2304 bytes .../chat/chatbubbles/bubble_51_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_52.png | Bin 0 -> 1809 bytes .../chat/chatbubbles/bubble_52_pointer.png | Bin 0 -> 125 bytes .../images/chat/chatbubbles/bubble_53.png | Bin 0 -> 2207 bytes .../chat/chatbubbles/bubble_53_pointer.png | Bin 0 -> 125 bytes .../loading/connecting-duck-spritesheet.png | Bin 34720 -> 0 bytes .../images/loading/connecting_duck_01.png | Bin 3985 -> 0 bytes .../images/loading/connecting_duck_02.png | Bin 4923 -> 0 bytes .../images/loading/connecting_duck_03.png | Bin 5842 -> 0 bytes .../images/loading/connecting_duck_04.png | Bin 3270 -> 0 bytes .../images/loading/connecting_duck_05.png | Bin 4558 -> 0 bytes .../images/loading/connecting_duck_06.png | Bin 5290 -> 0 bytes .../images/loading/connecting_duck_07.png | Bin 2731 -> 0 bytes .../images/loading/{caja.gif => loading.gif} | Bin src/assets/images/notifications/coolui.png | Bin 0 -> 18861 bytes src/assets/styles/bootstrap/_buttons.scss | 22 + .../layout/LayoutNotificationCredits.tsx | 33 + src/common/layout/index.ts | 1 + .../avatar-editor-new/AvatarEditorView.scss | 336 -- .../avatar-editor-new/AvatarEditorView.tsx | 114 - .../views/AvatarEditorIcon.tsx | 30 - .../views/AvatarEditorModelView.tsx | 85 - .../AvatarEditorFigureSetItemView.tsx | 53 - .../figure-set/AvatarEditorFigureSetView.tsx | 36 - .../views/figure-set/index.ts | 2 - .../AvatarEditorPaletteSetItemView.tsx | 27 - .../AvatarEditorPaletteSetView.tsx | 33 - .../views/palette-set/index.ts | 2 - .../avatar-editor/AvatarEditorView.scss | 2 +- .../AvatarEditorWardrobeView.tsx | 11 +- .../views/AvatarEditorFigurePreviewView.tsx | 55 - .../avatar-editor/views/AvatarEditorIcon.tsx | 30 - .../views/AvatarEditorModelView.tsx | 88 - .../views/AvatarEditorWardrobeView.tsx | 79 - .../AvatarEditorFigureSetItemView.tsx | 35 - .../figure-set/AvatarEditorFigureSetView.tsx | 44 - .../avatar-editor/views/figure-set/index.ts | 2 - src/components/avatar-editor/views/index.ts | 6 - .../AvatarEditorPaletteSetItemView.tsx | 32 - .../AvatarEditorPaletteSetView.tsx | 41 - .../avatar-editor/views/palette-set/index.ts | 2 - src/components/friends/FriendsView.scss | 22 +- .../views/friends-bar/FriendBarItemView.tsx | 8 +- .../views/messenger/FriendsMessengerView.tsx | 49 +- .../FriendsMessengerThreadGroup.tsx | 2 +- .../FriendsMessengerThreadView.tsx | 2 +- src/components/inventory/InventoryView.tsx | 2 + .../InventoryFurnitureDeleteView.tsx | 96 + .../furniture/InventoryFurnitureView.tsx | 56 +- src/components/loading/LoadingView.scss | 46 +- src/components/loading/LoadingView.tsx | 10 +- .../NotificationCenterView.scss | 15 + .../alert-layouts/NitroSystemAlertView.tsx | 35 +- src/components/room/widgets/RoomWidgets.scss | 84 +- .../room/widgets/chat/ChatWidgetView.scss | 240 ++ .../room-tools/RoomToolsWidgetView.tsx | 216 +- .../inventory/DeleteItemConfirmEvent.ts | 27 + src/events/inventory/index.ts | 3 +- tailwind.config.js | 51 + tsconfig.json | 5 +- vite.config.mjs | 3 +- yarn.lock | 3520 +++++++++++++++++ 97 files changed, 4477 insertions(+), 1336 deletions(-) create mode 100644 .editorconfig create mode 100644 css-utils/CSSColorUtils.js create mode 100644 postcss.config.js create mode 100644 prettier.config.js create mode 100644 src/assets/images/chat/chatbubbles/bubble_39.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_39_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_40.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_40_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_41.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_41_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_42.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_42_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_43.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_43_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_44.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_44_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_45.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_45_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_46.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_46_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_47.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_47_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_48.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_48_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_49.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_49_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_50.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_50_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_51.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_51_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_52.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_52_pointer.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_53.png create mode 100644 src/assets/images/chat/chatbubbles/bubble_53_pointer.png delete mode 100644 src/assets/images/loading/connecting-duck-spritesheet.png delete mode 100644 src/assets/images/loading/connecting_duck_01.png delete mode 100644 src/assets/images/loading/connecting_duck_02.png delete mode 100644 src/assets/images/loading/connecting_duck_03.png delete mode 100644 src/assets/images/loading/connecting_duck_04.png delete mode 100644 src/assets/images/loading/connecting_duck_05.png delete mode 100644 src/assets/images/loading/connecting_duck_06.png delete mode 100644 src/assets/images/loading/connecting_duck_07.png rename src/assets/images/loading/{caja.gif => loading.gif} (100%) create mode 100644 src/assets/images/notifications/coolui.png create mode 100644 src/common/layout/LayoutNotificationCredits.tsx delete mode 100644 src/components/avatar-editor-new/AvatarEditorView.scss delete mode 100644 src/components/avatar-editor-new/AvatarEditorView.tsx delete mode 100644 src/components/avatar-editor-new/views/AvatarEditorIcon.tsx delete mode 100644 src/components/avatar-editor-new/views/AvatarEditorModelView.tsx delete mode 100644 src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetItemView.tsx delete mode 100644 src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetView.tsx delete mode 100644 src/components/avatar-editor-new/views/figure-set/index.ts delete mode 100644 src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetItemView.tsx delete mode 100644 src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetView.tsx delete mode 100644 src/components/avatar-editor-new/views/palette-set/index.ts delete mode 100644 src/components/avatar-editor/views/AvatarEditorFigurePreviewView.tsx delete mode 100644 src/components/avatar-editor/views/AvatarEditorIcon.tsx delete mode 100644 src/components/avatar-editor/views/AvatarEditorModelView.tsx delete mode 100644 src/components/avatar-editor/views/AvatarEditorWardrobeView.tsx delete mode 100644 src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetItemView.tsx delete mode 100644 src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx delete mode 100644 src/components/avatar-editor/views/figure-set/index.ts delete mode 100644 src/components/avatar-editor/views/index.ts delete mode 100644 src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx delete mode 100644 src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx delete mode 100644 src/components/avatar-editor/views/palette-set/index.ts create mode 100644 src/components/inventory/views/furniture/InventoryFurnitureDeleteView.tsx create mode 100644 src/events/inventory/DeleteItemConfirmEvent.ts create mode 100644 tailwind.config.js create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a8dfa3e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,6 @@ +[*] +charset = utf-8 +insert_final_newline = true +end_of_line = lf +indent_style = space +indent_size = 4 diff --git a/.eslintrc.json b/.eslintrc.json index 695c05d..bd3e3f3 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -105,6 +105,17 @@ { "prevent": true } + ], + "react/jsx-sort-props": [ + "error", + { + "callbacksLast": true, + "shorthandFirst": true, + "shorthandLast": false, + "ignoreCase": true, + "noSortAlphabetically": false, + "reservedFirst": true + } ] } } diff --git a/README.md b/README.md index 7b6ffc1..0942f4e 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,12 @@ - Open `public/ui-config.json` - Update `camera.url, thumbnails.url, url.prefix, habbopages.url` - You can override any variable by passing it to `NitroConfig` in the index.html + + nitro-renderer>yarn install + \nitro-renderer>yarn link + \nitro-react>yarn install + yarn link "@nitrots/nitro-renderer" + yarn start ## Usage diff --git a/css-utils/CSSColorUtils.js b/css-utils/CSSColorUtils.js new file mode 100644 index 0000000..66bb248 --- /dev/null +++ b/css-utils/CSSColorUtils.js @@ -0,0 +1,49 @@ +const lightenHexColor = (hex, percent) => +{ +// Remove the hash symbol if present + hex = hex.replace(/^#/, ''); + + // Convert hex to RGB + let r = parseInt(hex.substring(0, 2), 16); + let g = parseInt(hex.substring(2, 4), 16); + let b = parseInt(hex.substring(4, 6), 16); + + // Adjust RGB values + r = Math.round(Math.min(255, r + 255 * percent)); + g = Math.round(Math.min(255, g + 255 * percent)); + b = Math.round(Math.min(255, b + 255 * percent)); + + // Convert RGB back to hex + const result = ((r << 16) | (g << 8) | b).toString(16); + + // Make sure result has 6 digits + return '#' + result.padStart(6, '0'); +} + +const generateShades = (colors) => +{ + for (let color in colors) + { + let hex = colors[color] + let extended = {} + const shades = [ 50, 100, 200, 300, 400, 500, 600, 700, 900, 950 ]; + + for (let i = 0; i < shades.length; i++) + { + let shade = shades[i]; + extended[shade] = lightenHexColor(hex, shades[(shades.length - 1 - i) ] / 1000); + } + + colors[color] = { + DEFAULT: hex, + ...extended + } + } + + return colors; +} + +module.exports = { + generateShades, + lightenHexColor +} diff --git a/package.json b/package.json index 2cb8e21..f9d71a9 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,10 @@ "eslint": "eslint src --ext .ts,.tsx" }, "dependencies": { - "@tanstack/react-virtual": "3.0.0-beta.60", + "@headlessui/react": "^1.7.18", + "@headlessui/tailwindcss": "^0.2.0", + "@tanstack/react-virtual": "3.2.0", + "dompurify": "^3.1.0", "react": "^18.2.0", "react-bootstrap": "^2.2.2", "react-dom": "^18.2.0", @@ -20,6 +23,7 @@ "use-between": "^1.3.5" }, "devDependencies": { + "@tailwindcss/forms": "^0.5.7", "@types/node": "^20.11.30", "@types/react": "^18.2.67", "@types/react-dom": "^18.2.22", @@ -27,13 +31,20 @@ "@typescript-eslint/eslint-plugin": "^7.3.1", "@typescript-eslint/parser": "^7.3.1", "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.0", + "postcss": "^8.4.38", + "postcss-nested": "^6.0.1", + "prettier": "^3.2.5", + "prettier-plugin-tailwindcss": "^0.5.13", "sass": "^1.72.0", + "tailwindcss": "^3.4.3", "typescript": "^5.4.2", - "vite": "^5.1.6" + "vite": "^5.1.6", + "vite-tsconfig-paths": "^4.3.2" } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..9855208 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,8 @@ +/** @type {import("postcss-load-config").Config} */ + +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..ae27533 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,7 @@ +/** @type {import("prettier").Config} */ + +module.exports = { + plugins: [ + 'prettier-plugin-tailwindcss' + ] +} diff --git a/public/renderer-config.json b/public/renderer-config.json index 9653531..4a9b8e7 100644 --- a/public/renderer-config.json +++ b/public/renderer-config.json @@ -1,8 +1,8 @@ { "socket.url": "ws://localhost:2096", - "asset.url": "http://localhost/gamedata", - "image.library.url": "http://localhost/gamedata/c_images/", - "hof.furni.url": "http://localhost/gamedata", + "asset.url": "http://192.168.0.8/gamedata", + "image.library.url": "http://192.168.0.8/gamedata/c_images/", + "hof.furni.url": "http://192.168.0.8/gamedata", "images.url": "${asset.url}/images", "gamedata.url": "${asset.url}", "sounds.url": "${asset.url}/sounds/%sample%.mp3", @@ -23,12 +23,12 @@ "badge.asset.url": "${image.library.url}album1584/%badgename%.gif", "furni.rotation.bounce.steps": 20, "furni.rotation.bounce.height": 0.0625, - "enable.avatar.arrow": false, - "system.log.debug": false, - "system.log.warn": false, - "system.log.error": false, + "enable.avatar.arrow": true, + "system.log.debug": true, + "system.log.warn": true, + "system.log.error": true, "system.log.events": false, - "system.log.packets": false, + "system.log.packets": true, "system.fps.animation": 24, "system.fps.max": 60, "system.pong.manually": true, diff --git a/public/ui-config.json b/public/ui-config.json index 5f247b6..be97b2f 100644 --- a/public/ui-config.json +++ b/public/ui-config.json @@ -1,7 +1,7 @@ { "image.library.notifications.url": "${image.library.url}notifications/%image%.png", "achievements.images.url": "${image.library.url}Quests/%image%.png", - "camera.url": "http://localhost/camera/photo", + "camera.url": "http://192.168.0.8/camera/photo", "thumbnails.url": "/camera/photo/thumb/%thumbnail%.png", "url.prefix": "", "habbopages.url": "${url.prefix}/", diff --git a/src/assets/images/buttons/toggle_bg.png b/src/assets/images/buttons/toggle_bg.png index ffb1ca4b4583994aac62e0453078d5619f5621bc..d4d1115537aaedf15be8e3589d98934d2864404b 100644 GIT binary patch delta 370 zcmeC0-@r`Y$W+(Jz{wqYmC+=x&|h?My4SK7FI?^R)&_^21Zr}21*JQxdm3f`6-!cl`e@TskTZ$?dVD; z|7TKCF)}euvrIO#&`mNmPSZ_EG)dL9Of^i=HA^+HNJ}&^H?~MK*zC$&z%=<8iV0iVdm2@DJjA)YRdAr`&K zAt5Fy2blgP3#TL`B)EttCLzT;Z8BjE~z z&dJFv2RuymCp_kIOJVjfWmzX?Yko+jt0J|C{>ub&IM1I=gfboFyt=akR{05Sk< AivR!s delta 218 zcmV<0044v*4vr0wI06OGkvfbhH!d+PV=yoM<1#e_&W_gp10wj|O0~eDU1tzmb18xG7fd*NBqjmw70001F zNklPx#1am@3R0s$N2z&@+hyVZt*GWV{R9J=0m`iILR~Uw$Gb3LVyN;z;t>UDKl^ekV z(@;tSL13~eCWZD7G@DY|h6J+GE{oDlm{lNcXejL>zn}{j(=LKx2zb>Rf(GM+NDXmN zTCA$dMbTx>*TrbYmZjKnMh3rdG}0NJneUnJa?TmW=8`UbYKt+uLa#DX0G4jekceyk zDH#AH;+lOQ|F+fGT_K}OpDf*)VRiN+mX}N1Styf;YZ7tIXnF!yeqrg>40QMAu2E#e zZ}Gi!XQ9lQ)1!>0CtzX*3Uicm1xA_U_-9|T1e`oSC+t$stp}5ND-(Ezg+=cOP?!Vo zVDaD*am~DyVLEFIz)`?3;He3MVn_o9G(->#no0wp6qpfMA%^HChOUPKkVYL5>3Fys zJqEz9KP__NMBMXGdLlTUIXxP{-B~CDULF>U&zR2I{602CZ0{(^1LK<-^XKB<4DXp@ z?;qbVpr3~V8>-bv9X%pw1>Q#+n9N%llF4E2I?sYZ>!JK33yW)EdhTl|%yBYxldFvJ ztXd^H7^Uza|4Kvttqd`|XNu_+3xxuPLxE{AXt1TPl1h7^a0W)nzFNzg z)u$C!pH{YM%6^`d|04e1b6nR&LVCc+HF8FOaR8aJ9=BHHyYlJRkt<5>&tZoT6V2Tby_$w(htCN*4_~yU(Nmj08ITd z)OAehd@zPuTT;oql?hJxp1MYv7$)OHdI|*~B5199dQD$iOQ*HdS)19}SxTi6nM{UM zD#eey)AO501+-QWG8DVZ0~5=#n9gPauq+FJcsx!nmm{Cg?+BcTAfizrCo-iJA{$Dp zX|ApAXJ=>0=krWXPU1KYrIJ_feYh`p63&7RGPDpuArPv$ttVs3y0DgJ`?kflZPMv9 zlarGai$wrRr4qSZ4$HE74%Z7Aex4fbA#DIEo6X`lP7r=RoZsg-4%uursFJ-5vp~SmbM%V;2g)HSS;fI-l+o8OZBZoQEYhUp%ej(AAWxR*|yzNLriHk ztwJ?lF7CRk>(1@a@d4ys4Ze*Y0ARKHoNIWy*P>@1MfZf^NFoTA;mhMRWba*|003 j&elJ?y%rtp8q5C!IF(%v;!7u600000NkvXXu0mjfep6%+ literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_39_pointer.png b/src/assets/images/chat/chatbubbles/bubble_39_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..b73b25b6eb13e5ff7234cb502843d9bb8079f4f6 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRR!3HD+k8e2&qzpV=978H@B_|{#{P_R!RVdG& z|9A5ZcqgSd2>lRg5M8KoWGREQq8_UT*GElPx#1am@3R0s$N2z&@+hyVZt1W80eR9J=8m`!X{RTRg6=gpLkNgHgVtuojKY=n)P zFoP8&VN69>xge%N7ls83(U^i*i3>(EEJz@c7!&Q%jb91r(zG#6CW>uFXPO9U0ILGp zl0XTK(uB@*<{cMz-s`;1OpAG)w)____v74i&;Ol|d*2g4sSTt?dhZKCfaKYCnZ0|5 zP-C-aa`x^W078w;p83-8h4P`sW@1M_uDRh$Aqd8x!QoK=ni}c>n4ZbH?b81AOx7JM zm36Rp=eF8geIE!qji!cr;^%(xr7ZF4_A)Q77F=S^Ti^51w*Z{`u$z&8V0a+K$mQz* z?AY4Q$mQ#-+tp3vc8bg+od85`r$`)lp6Qva8>X8BqF6Aeieix$8vqdq1YwdU)Xrns zIbQ^HE{Cd?<#P~VaCp=ccE^r*N$oz=P42vDA3M^`@PHw;V=Ls&&l7BFsCPs9kEt)K z8Z&cqh=!&onX(S~BITgvu~x+vFb}{~E*(f5WN>(tvjZ1=ZE$qoGwj{DjeYSi(23rP zGLwIg6W;V3+WH=X0G6*kZMCokCT>iy>4`S5jrW28KVKLFOpbuJa5y1asi>6BIpdBl z7va+|`F@!}qKbH+{|ZAWI| zTxs8t1Bi!Dlc+$-Fk6S%3YI@=IdI=jL+ByY3V>ZO9{c{%O<&5Zp(-gLpU)Er1bkl) zoUFPxH3h)<)vI*0x0h8D)wF3y6w)0}6aD=nnl^p;Acdalq*P}AnR@zrv+kHPZj>ox z%og#8lE?_({RH6_*wA&$AEQOk5^nRExfLK$NG6k}lbL^SiOfpgu*48Mp=tucnm4Z0 zTL78{J=Mwalp<01X8db34gI}Y`mS^tk4B;IN*A$M%v~3c)aoi)9hN{)RaHa;z_J7< z=p*mE1wDs73rt7~$5YB{ox*{1acs*F`_I(#@+-S|bIXt?ELYZ32DYsP9a4Z&Fy7El zK1X^Edkl2okV__$NYr@7jAiNX9jdry<)QACN|VVXyMMhz=F`url5&@&L839YACD-S zUe&J@F9HFqVtz?17DIa8_T*J1I60%~V%1}H!fjD#9_yrtXptPScqkQ1wu_QdzSdv? z#EYHvvV?(EJd?->tSNGqA$GD@K(gw?xV03HBHjZ!yZq<%>cCbn6RFvMos~t|$B-_S zV-F1M1;iA2>V?%ZW_i#WZbRpCQkGQzW-Ez5Kq&r0saVP$1-;c*n|;S_z~k#-Z2J$( zuKUG3FHy+m1Qz=;w@?)No?Z6+`E3Rsu7i#fUoDHi*AKpdWh-{R;Q5)e6jrvPtZVpx g@_{_un=RwlRg5M8KoWGREQq8_UT*GElcFegqo8zW+?B?jX6(ZM&aCZ=Tb#_VTg05FETZ#zjD@; zIJ>PzI9>!0E9FbFz;z_6uFf+zqyaw#@(l002ovPDHLk FV1i<+kRSj6 literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_41_pointer.png b/src/assets/images/chat/chatbubbles/bubble_41_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2bead6f2dfb208b58d0dbb8b52307a67f93159 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRR!3HD+k8e2&5-9M9EM{Qf76M_$OLy!300s3u zT^vIyZY3uqB>bp&he<(7zAFc1ddp1~^^H|~sy@d#c-cdk5uS8!*zga4oNVZ-99QB6K5|E-jxB#n2g)Qb=1qfX4gZwLSy5D$*6R`G9QnhH` zhk`(=3Fhadbp&he<(7zAFc1ddIgeWtFT>socmVgT+!?OG!h@Ke!G%ks zXQ&n&93B=ZQ!_O~@~4nM!p96H6bb_{me*#doF_4paQ3mYsUp2F#M$D5ObzO9^xI=D|;Ra(423acPy-He0#1e!q>oXz2A&$l~EhM>LKvZ>S? zLvgKJ_$Th)y zopeGz^h>HO3P_QN`zxTk5kzvq!~qe>i4zBm5d|txfeKWh0u`u01qK6SBVz-bKl(A? z(!YJtK#Js!LptE;a%E3%Rc#6~29z7=T^F4LO=)HO34oU=?PHm>aR2}S07*qoM6N<$ Eg6KkxZvX%Q literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_43_pointer.png b/src/assets/images/chat/chatbubbles/bubble_43_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2bead6f2dfb208b58d0dbb8b52307a67f93159 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRR!3HD+k8e2&5-9M9EM{Qf76M_$OLy!300s3u zT^vIyZY3uqB>bp&he<(7C1a_L(Y?!K{)r=x>S)t7~ov~MWzM~SI(LO zXE){Ok7ogdN`;avu-TfsMH$$~ttu@+AchqXn^j}yK7#HudX|TyJKyds>4LUq%c@cz z493+)H1Ryww0Io%2GAOiqdlYmn@9sKMy-O6zn+5pE6}d!kpyhLlUyx2_MrffYl8VX z=}rZrh>?Js70}-ZAh}@TfPm!0i37%n0u`u01u9U13RIv1$-vmi*ud(Kz7II{ zZ(lSJBe~;|9(cN3+0$B88-k1hTG@U9!M8ko)OXuR00000NkvXXu0mjf Dzweax literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_44_pointer.png b/src/assets/images/chat/chatbubbles/bubble_44_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2bead6f2dfb208b58d0dbb8b52307a67f93159 GIT binary patch literal 125 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_49_pointer.png b/src/assets/images/chat/chatbubbles/bubble_49_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2bead6f2dfb208b58d0dbb8b52307a67f93159 GIT binary patch literal 125 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_52_pointer.png b/src/assets/images/chat/chatbubbles/bubble_52_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2bead6f2dfb208b58d0dbb8b52307a67f93159 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRR!3HD+k8e2&5-9M9EM{Qf76M_$OLy!300s3u zT^vIyZY3uqB>bp&he<(7YD0>J^wktg(U+5O-)?rzWBJ?^k_ zOvf6ZV@~;C%x6vpj@4*1pvaVtp%#G?NM(&LeDoL;wbU^C_BbvzHO8CS+i!P&|KI=j ze|@`4a-3N>cxA?% zs_JD4!teL%{IpJzO9+x-7(!1G6oo?su9SOJE`WQKF+B`cpzyNjRYl2zYK&Zw@L`EQ zsKbx%asX3nvxR-!SBu*ncA==#%3v6wgxnXc*vq|um`yt zbWnxO#%6dFmGkf*!)nH0*g8=ZSUwTZdeUITO%!Z9U@#=&jGm`(fdh1rzyMoc!0IWX5lP`nLMxXzMGLdHGLr~x9-tB0z3L_+9_}&NrEI#WDJT#5%>#48 z3eaFhGP1M^qn5F7M<#B>?W>1g6CktZsK{hx(Um{yNaH zck->8A@IveZ?u^mJHJUv`S#Rro70WS`$xI!@-y=S$f4o$>Ym27R-_%2YQ3-7y84_x zI(WhLv3Td_$2Y`J?IKgEYaeeI`qZ(0YFWp{4~ezE9FX_yc0Y5prTzQm@13bEGzP}c zdOqSsUvpAQb;Q-v`(L(p(APVc9=}$Qv!(Lt?h{L+yU3Sre(K1SC$$;)4CFErzpA;W zZRby?E?u20-`x6lR&{!fwWjOZpaag8^VdXPy7;SUWm$DgG5Huc|9%To%vm7-?^_IWmT|Z~md| z@N8zs_zP62<@oHF+Qxz=U+cnMS8hj-;H|4y)IXWIt!>P*8agp+{+>~`WnZ5dG=e{v z6A?f5XngFH>F0M3its1Dz2eU|_SN@06Zu&U?OguECS=p*X7nw8WRvaZy7!qwF?09T mn?{@7`KY1twr_psjo2pNN#DA2A2e#85E;|5t-Dg@Ec^#?kqDvy literal 0 HcmV?d00001 diff --git a/src/assets/images/chat/chatbubbles/bubble_53_pointer.png b/src/assets/images/chat/chatbubbles/bubble_53_pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2bead6f2dfb208b58d0dbb8b52307a67f93159 GIT binary patch literal 125 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 PfIn9?^wld=@e%(IBrHKV diff --git a/src/assets/images/loading/connecting_duck_01.png b/src/assets/images/loading/connecting_duck_01.png deleted file mode 100644 index e3772c8b4e3910d9c52f7865d8058c3e5c86d41c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3985 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 RxzL7}n4_)B;YvaP^}pt-O8Wo+ diff --git a/src/assets/images/loading/connecting_duck_03.png b/src/assets/images/loading/connecting_duck_03.png deleted file mode 100644 index 15a2bb9f4b69d21f1dfb005e2c0bf785f9d16617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5842 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 Bc3=Pi diff --git a/src/assets/images/loading/connecting_duck_06.png b/src/assets/images/loading/connecting_duck_06.png deleted file mode 100644 index 0e51a51d7bceb555184e53fdc51325904a2e5edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5290 zcmXwddmxi-_`hV%LlH9}LM&${l-exhJafn)qM@1dp@dY-wy(EIy$SE|+7r!YDCQ8M zSKg-NurfIm-pXM_C8rMJ`{?)k{;@sJeP7r0x$oybem++&*24)Z4VM-X5rI0NI*Ahz z+2shn*GY)CZAvxeD);o<0BMF=UYDvPc!4e@Vu|Ter{ad(rJpp(+sFj zrUw@MX=bO%@Tqmq2PCg_AMs2^X`3>>PXntsKIk<#xaNgu;I~n{Z z2$Ixfvlc^ZRbCyvU)h`nC*+;Ry|J9-GI}mrDLa83ixVcu0~yN)zkL}aXdAp$T<=6)Jgv9 zg`rswK4uh`xh~0ixdf9ZO^y~WaA&Le_u_%$Er$dT*I}vD$^VoWl4lWo-F(0D@!dqn zjJQTsZ@EVQPqAIJ@xEt*g>We!J5kNA5LM_5_`S)n75dfR(|HEcUV?S z;BWy`-1eC=azax0GPbtWIAtp6sO&+}JI zl+Y$(b%@X`_MVx+sz-B@q~LlJ5uwPyRQr0b*~_1AvGTb~X|Y!s zt)4$`qu~8&%5`}2>h?&ye0S;`1ePYPde zM3?yOJW5U9t2>Bso%oW5w^1M&_;ACE&r(7+e{D=@QZDq#m|w@9XdIP|u+N2Gi6gv= zCK3*(*fi0Xtzjn=7xDuiF=+nYm_aF{OYYFvEaOT)u6jfljP|7V`8K^1shYjqGIb>b z_S($knGgCGF504CUo=tJ${^RV0VBSyfY992bqUJ4N{peH^Lk&O`BO?ZE^ zCFK3~ubvj_wgowG@x<0%GB@>A24rE}AhZkJ~Ocyq;x`kP*WgBi{ZlBot_95)s z;pHHdAN)1agr9=R^dnjn7`PHgJNfp7f(OdN1XrZmmk&MpR|jpjH}w-uL(~^qa3w%Y z0IqwTq=B< zXGT7TxSbGO)wRN?-uA|e?S5X>K)Q3!V&J(S`4JSvo+G9z{Um{t|lbeAS)rZ?MQbmB@x{L%wvj-Ny9}W4UBU~$;1yZ^9Y z(A5e(cCxx1N;j>d2vF4eN@oW1j5j8E({=jvKNHq4ywGq&fL&2s_^8VPVnFCMe)tYF z=~$I~iL8V`33X?60;2 zZQM)~Uu)WOkKmFk5w?dKRzq6$%^65{hFYA(md}A-`G-%MjinU(E1a-mlgEgB!PYuC zzB(OkiYqo^CqC_h~=xf+W3b)WC%mN$LUpp9dtk=byB z?>z&-ztP9DwV_tB^}4s0wVpk&QnpXLSQSbGxB)BBHjdAoN%e*8(qZhyTZlmn>C~MO zl$vh87!p_Q;>}7dl0BCFUX`d6qU#8J(;og);RaXhzz{?BW8DKKTaNA&*Is;|OmTX4KW?FISehpq5fqk9cHJAQO%( zh+rc!$0OrqY`DApl1*I&Rf-9sz6VF2rWW*Vd&w^u3|W&-U&{{Hx547{(e9lovL^_%vQI3BjC>4eZ9G0AK#qwjl7Wq z{~gg7Dlf+~ak5WU0-X%nw*&6Ll1*5uk!#7aNdE^#BcX2D2M?3a#Yp!j<~%>%y){RI z$xirwAI=a zc>hFX@^-om#nq7fKE~x+GW~<(?Mx4+dSBG5iJcJae1_?48&>gmNcEVOHSBTejVE1% zzL&r2iiepC(<5V_ryg%_#K2*m24|jG?{|hL=RDtHT8tuK=lwq4oP1Jq#cEbV$!Zr; zuy|@e?e>uBqB@OhqSPsc?~`j6`|#k}nPg6yt9z&B`mYN*yy8b6LQ7?TZrSd|_f4dU z;Z5aw#w<~P<3GdXCTDg{=9$eJ!8CY)b&2>3Z)w0Ej(IhDOK(c%XLg4gUXC$;cB*)Iu)>-2?y2>D z{18J`j~sa2awFXT#FDQZ=~DtYgf(C<>*SDKi!x*=QdF8+wXpp=P*97a`zc6NsnWzT|Ubq9lk(` z4;e1aIifQ|>f#g5SY3mZxvn?%Hn*x@1%i8Vig8zfAYdwcL0`u&5MrDEomdFuMb%NU zw(I_Pp7Mhw;$>!bv%mhIFOlHQMsyq%9OzPEE#rLKkV=;2?-hiL-o9{5>i%|Qfjk=# zn`Lga21RId7 zJ^?u9W|HV;zV|ZFS}8dt=<}u3uaw$`MuRY|sOom*-Ufl8kDDL5kZxoDMj@yl&{x((u@ki!j%zv90qh&aPtv(X8sgM5?bjm-3%_s%W%R0T)g~@$j&f4 zdge<|2!O;|f>%;prQirFaYVp>gE`M-QkeYUdy^XAT>;0*M5qLaL3KEc{#k)SH`JjM z?SAGiWlG$Zv=@1d{D}gd#2dd`Hf(^w-TW{mdcJX;3|{YdapZ+O`m8x$BU)f-kfLJK zFScgK{;I6ceTE>2Hb{?O@_?G1#gb-DvYrPCQZ#oj0S@j?eD!HdMZxFafQSY-J*S3Z zRql=H^JI+`o@6a&2pXxF=#O4QdsAM!!qJ(3@9?=A?Gi@rGonx-iTFR?rI3?!Npcq` z;wJcSgII%mQktXT=wD?!jx_BO;CYfCTB5#^^4DpQH}u)>N<4Hy)&^u3AQ>2OCHfl` zxZ6BpNIfSCO$!C4D{{z)-0Rp&XPje`rEIx--9^_{{)E34jZhqey3@IE+X7u=UpodG z_yM70Twd8+FJ9)JrLAK$4q2n4D6R|SF=Na(0R)lAc$ z_U{_+MLMwtU51rvu}s4>{YD1J4l#9JLohrX=&be{YP1h%m^NULYeBe6d2}AkTXM}S zkIvlJdjshSF-qvy6Mg}g5U+S2C|m@Vwb;m-G#3I8ZG|qva+u~k9qeO4H9HWf@m~?} zvq3%$$|CoOz9nFb1qxG?YW=JeO2(vKs;v}Mw`MJ*AK*G0kp>l(CM1^eZ=~>Updf{J zMk9UOh}fo~FXOU#if|BA3`MW2nU=Fj{ET>C?{$#V4}?=Yb{sKGOU5R>IU`Hrr!6yuiD?y-GQKvtPP^@%>Rn$V0Zx15#gxLqqa+*=LB4nt9h!$$B(;YzIv;WE+549ypf%L z-@#i_J>)uuA<^9Qqp|e>m>l4E=4YqZIt+=ZhjY3aPA$|Q?cY(t;~Us=O{q0M4pY%q zpg~2+C&o7^C2I@+UiWiVg{)!oBTZAD*~yVK=Ddi`krKkqe4Hy>YRxS_5-;Ru?3cD1 zw_wfuB`!QR$S6DlU$~{we}fO9CFrjf4>Ajhdcw;C%tBlE0(lRe#CQRFr^m-^i#2WL zQ`Xm{h~IcIfm9(Gr^%#}=`S@Z>cZoN z&^VygI%Pg6T~hGyBF*-F1>;Eby;%yFMH@xs*emGA;ZAqT5it}?cR_+{AYvdh{>eB^!;$l7UaZ*T9 z$9-P0tiW_V9gepJcn#$hX5e0vT1tfDJ>-yeOCzx4MAq`>8Z({`CM+p3Zzs=3GmC^x cb^bcx;bgK0FQ}fA9QAzL*tPGr_2*J~Q)J|Hum#*{XD>Aaf;UJ*HUBbPr_zP;p8vZw~@ z=q>iHN3MuIS6!SK01~6)ru^pGx1t8dubey83Yjxh!0X!ccyW3^e^;5Ss9EW7 zoI8gEmrO>yz|2Q)j0H$mv}=b?Zf&w;*Xt^;o>U%$&bNH3aB+L-l$c^(g8`w zv`ijD^V_J7WZ8*26#^7z3qD}|TFAzuW_(-4>Zbl5{2ss7`rFZ(Rwq|`v{z%77m-)` zqOPND1#365aAt#FjoPdaDF;!fI1JkfK{eLzvA;(f^64&>wefN#f{W+jRn;e>?!KD8 zCH;8MqI|rK>SE~y@#lpvvJM?ge`Iwxy*_+(&(+rY*KghVALT5C13l#?6YhR>{!inp z)6O{Y;!&L}J*?k(&TK0(Ln|`Q$I~CdJ>_DIg;MXjg(;z2k|Peu?c24ga&Y}e0KMOs zwX`gCo-u>2n&sJtxOX%EF_FJ882Q1L}0LkilG**&Z0eWTx2N0dnImT#U) zlcyN7KimRh^D%mpF+rATT0h5tqtDcUE*nyVaxl)VNXElxLh}3c*(0j50h$RhgzWBVgtQ#oxp4J(jL z!~gAW5@-2?(E11QH~To#Dbj^KwW;SQGUi&%(%vf9fug{yNkX)Kf11i>;VsB_tEyM~ zuSs$3cLLYKNoVB(#3W5T+^+Hs^1)Yz?X7>B-JA%M=_ZJuG8Dc0MB8QzIROztLIAb} z=PoPSh7g0+_z|qExcP{&#Hzv}6OUSL1G8R*4A)BT7a-m zRw5z?qs_$6Wv(jz9{;cmKJQ6bZQi+jrL1PXIO(Vi<$V&-$2s$0ZA)pjy!n@A)QQyq z+=T@fMproLNc?^0Ocg=K3N=!0n0hYe z9?@!e|A*KSr3}M48EyqD&Cuyt1v^8_Q^S(-#hQ9TO=#!iD2dyphp@x!O(rc(1a^Tpp zgJwJfS9nP(=qN#=Kz2d^SGq_mR1AIWHI;7G~gG?5LA* zDM(s9M~$g)M(|{$6KcoWh!Xf&V)vtAPc!5kd2aD&~}q;4Ui-F|WZW}Y6?4! zp{QR&e2%^ICz`B3tD`3qUpb+3*boj0GHK(geHu?6#9PmX|I(u9(l9~ zFbX5t5^r`JxqYMKoWn>$jHN-(Wi?_}69$~Y<{G}V8URj_Hj%XG|B zKv$Rrptz2pI#2{;*#NN(a}63?kO$E61bu*6>vv`w{eXpx%%~9%mS( zmf(^fUGUp$PR-@T0`*K+(KtgfwS)lww~NrmB9TLsVthPH>$v!wjxYu0^QSfZD$t=V zb^!wwuA*-Ig^n;oW-Hbg7%eA}Z^8i03KE%zA9%c&Ml5jR5!ybn>t^Mj^n&}q?u>Xn z6J_(}ah=2B6M|)vZQWkVoQ)lz`yG+>V7#^Qn~W$ec#=3ZX%@QNPN?ng zCf=djjyj` cet9`sKg8{XC@_}-E|?Gp8yD*ef>+G{0p)5sUH||9 diff --git a/src/assets/images/loading/caja.gif b/src/assets/images/loading/loading.gif similarity index 100% rename from src/assets/images/loading/caja.gif rename to src/assets/images/loading/loading.gif diff --git a/src/assets/images/notifications/coolui.png b/src/assets/images/notifications/coolui.png new file mode 100644 index 0000000000000000000000000000000000000000..b78ce8bd8906d010021acaa611e5306ee6cd7726 GIT binary patch literal 18861 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 X(N=cM>u^}K00000NkvXXu0mjfJ*`(2 literal 0 HcmV?d00001 diff --git a/src/assets/styles/bootstrap/_buttons.scss b/src/assets/styles/bootstrap/_buttons.scss index 3c2cba9..d4a000b 100644 --- a/src/assets/styles/bootstrap/_buttons.scss +++ b/src/assets/styles/bootstrap/_buttons.scss @@ -114,3 +114,25 @@ .btn-sm { @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm); } + +// Tool-Bar button left side +.btn-toggle { + border-image-source: url("@/assets/images/buttons/toggle_bg.png"); + border-image-slice: 6 6 6 6 fill; + border-image-width: 6px 6px 6px 6px; + cursor: pointer; + + .toggle-icon { + background-repeat: no-repeat; + width: 6px; + height: 8px; + + &.left { + background-image: url("@/assets/images/buttons/toggle_left.png"); + } + + &.right { + background-image: url("@/assets/images/buttons/toggle_right.png"); + } + } +} \ No newline at end of file diff --git a/src/common/layout/LayoutNotificationCredits.tsx b/src/common/layout/LayoutNotificationCredits.tsx new file mode 100644 index 0000000..b5e7f91 --- /dev/null +++ b/src/common/layout/LayoutNotificationCredits.tsx @@ -0,0 +1,33 @@ +import { FC, useMemo } from 'react'; +import { NotificationAlertType } from '../../api'; +import { NitroCardContentView, NitroCardHeaderView, NitroCardView, NitroCardViewProps } from '../card'; + +export interface LayoutNotificationCreditsProps extends NitroCardViewProps +{ + title?: string; + type?: string; + onClose: () => void; +} + +export const LayoutNotificationCredits : FC = props => +{ + const { title = '', onClose = null, classNames = [], children = null,type = NotificationAlertType.DEFAULT, ...rest } = props; + + const getClassNames = useMemo(() => + { + const newClassNames: string[] = ['nitro-alert', 'nitro-alert-credits']; + + if(classNames.length) newClassNames.push(...classNames); + + return newClassNames; + }, [ classNames, type ]); + + return ( + + + + { children } + + + ); +} diff --git a/src/common/layout/index.ts b/src/common/layout/index.ts index cbb0568..42a92ff 100644 --- a/src/common/layout/index.ts +++ b/src/common/layout/index.ts @@ -12,6 +12,7 @@ export * from './LayoutItemCountView'; export * from './LayoutLoadingSpinnerView'; export * from './LayoutMiniCameraView'; export * from './LayoutNotificationAlertView'; +export * from './LayoutNotificationCredits'; export * from './LayoutNotificationBubbleView'; export * from './LayoutPetImageView'; export * from './LayoutProgressBar'; diff --git a/src/components/avatar-editor-new/AvatarEditorView.scss b/src/components/avatar-editor-new/AvatarEditorView.scss deleted file mode 100644 index 22b873d..0000000 --- a/src/components/avatar-editor-new/AvatarEditorView.scss +++ /dev/null @@ -1,336 +0,0 @@ -.nitro-avatar-editor-spritesheet { - background: url('@/assets/images/avatareditor/avatar-editor-spritesheet.png') transparent no-repeat; - - &.arrow-left-icon { - width: 28px; - height: 21px; - background-position: -226px -131px; - } - - &.arrow-right-icon { - width: 28px; - height: 21px; - background-position: -226px -162px; - } - - &.ca-icon { - width: 25px; - height: 25px; - background-position: -226px -61px; - - &.selected { - width: 25px; - height: 25px; - background-position: -226px -96px; - } - } - - &.cc-icon { - width: 31px; - height: 29px; - background-position: -145px -5px; - - &.selected { - width: 31px; - height: 29px; - background-position: -145px -44px; - } - } - - &.ch-icon { - width: 29px; - height: 24px; - background-position: -186px -39px; - - &.selected { - width: 29px; - height: 24px; - background-position: -186px -73px; - } - } - - &.clear-icon { - width: 27px; - height: 27px; - background-position: -145px -157px; - } - - &.cp-icon { - width: 30px; - height: 24px; - background-position: -145px -264px; - - &.selected { - width: 30px; - height: 24px; - background-position: -186px -5px; - } - } - - - &.ea-icon { - width: 35px; - height: 16px; - background-position: -226px -193px; - - &.selected { - width: 35px; - height: 16px; - background-position: -226px -219px; - } - } - - &.fa-icon { - width: 27px; - height: 20px; - background-position: -186px -137px; - - &.selected { - width: 27px; - height: 20px; - background-position: -186px -107px; - } - } - - &.female-icon { - width: 18px; - height: 27px; - background-position: -186px -202px; - - &.selected { - width: 18px; - height: 27px; - background-position: -186px -239px; - } - } - - &.ha-icon { - width: 25px; - height: 22px; - background-position: -226px -245px; - - &.selected { - width: 25px; - height: 22px; - background-position: -226px -277px; - } - } - - &.he-icon { - width: 31px; - height: 27px; - background-position: -145px -83px; - - &.selected { - width: 31px; - height: 27px; - background-position: -145px -120px; - } - } - - &.hr-icon { - width: 29px; - height: 25px; - background-position: -145px -194px; - - &.selected { - width: 29px; - height: 25px; - background-position: -145px -229px; - } - } - - &.lg-icon { - width: 19px; - height: 20px; - background-position: -303px -45px; - - &.selected { - width: 19px; - height: 20px; - background-position: -303px -75px; - } - } - - &.loading-icon { - width: 21px; - height: 25px; - background-position: -186px -167px; - } - - - &.male-icon { - width: 21px; - height: 21px; - background-position: -186px -276px; - - &.selected { - width: 21px; - height: 21px; - background-position: -272px -5px; - } - } - - - &.sellable-icon { - width: 17px; - height: 15px; - background-position: -303px -105px; - } - - - &.sh-icon { - width: 37px; - height: 10px; - background-position: -303px -5px; - - &.selected { - width: 37px; - height: 10px; - background-position: -303px -25px; - } - } - - - &.spotlight-icon { - width: 130px; - height: 305px; - background-position: -5px -5px; - } - - - &.wa-icon { - width: 36px; - height: 18px; - background-position: -226px -5px; - - &.selected { - width: 36px; - height: 18px; - background-position: -226px -33px; - } - } -} - -.nitro-avatar-editor-wardrobe-figure-preview { - background-color: $pale-sky; - overflow: hidden; - z-index: 1; - - .avatar-image { - position: absolute; - bottom: -15px; - margin: 0 auto; - z-index: 4; - } - - .avatar-shadow { - position: absolute; - left: 0; - right: 0; - bottom: 25px; - width: 40px; - height: 20px; - margin: 0 auto; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.20); - z-index: 2; - } - - &:after { - position: absolute; - content: ''; - top: 75%; - bottom: 0; - left: 0; - right: 0; - border-radius: 50%; - background-color: $pale-sky; - box-shadow: 0 0 8px 2px rgba($white,.6); - transform: scale(2); - } - - .button-container { - position: absolute; - bottom: 0; - z-index: 5; - } -} - -.nitro-avatar-editor { - width: $avatar-editor-width; - height: $avatar-editor-height; - - .category-item { - height: 40px; - } - - .figure-preview-container { - position: relative; - height: 100%; - background-color: $pale-sky; - overflow: hidden; - z-index: 1; - - .arrow-container { - position: absolute; - width: 100%; - margin: 0 auto; - padding: 0 10px; - display: flex; - justify-content: space-between; - bottom: 12px; - z-index: 5; - - .icon { - cursor: pointer; - } - } - - .avatar-image { - position: absolute; - left: 0; - right: 0; - bottom: 50px; - margin: 0 auto; - z-index: 4; - } - - .avatar-spotlight { - position: absolute; - top: -10px; - left: 0; - right: 0; - margin: 0 auto; - opacity: 0.3; - pointer-events: none; - z-index: 3; - } - - .avatar-shadow { - position: absolute; - left: 0; - right: 0; - bottom: 15px; - width: 70px; - height: 30px; - margin: 0 auto; - border-radius: 100%; - background-color: rgba(0, 0, 0, 0.20); - z-index: 2; - } - - &:after { - position: absolute; - content: ''; - top: 75%; - bottom: 0; - left: 0; - right: 0; - border-radius: 50%; - background-color: $pale-sky; - box-shadow: 0 0 8px 2px rgba($white,.6); - transform: scale(2); - } - } -} diff --git a/src/components/avatar-editor-new/AvatarEditorView.tsx b/src/components/avatar-editor-new/AvatarEditorView.tsx deleted file mode 100644 index eb1973d..0000000 --- a/src/components/avatar-editor-new/AvatarEditorView.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import { AddLinkEventTracker, AvatarEditorFigureCategory, ILinkEventTracker, RemoveLinkEventTracker } from '@nitrots/nitro-renderer'; -import { FC, useEffect, useState } from 'react'; -import { FaDice, FaTrash, FaUndo } from 'react-icons/fa'; -import { AvatarEditorAction, LocalizeText } from '../../api'; -import { Button, ButtonGroup, Column, Grid, NitroCardContentView, NitroCardHeaderView, NitroCardTabsItemView, NitroCardTabsView, NitroCardView } from '../../common'; -import { useAvatarEditor } from '../../hooks'; -import { AvatarEditorModelView } from './views/AvatarEditorModelView'; - -const DEFAULT_MALE_FIGURE: string = 'hr-100.hd-180-7.ch-215-66.lg-270-79.sh-305-62.ha-1002-70.wa-2007'; -const DEFAULT_FEMALE_FIGURE: string = 'hr-515-33.hd-600-1.ch-635-70.lg-716-66-62.sh-735-68'; - -export const AvatarEditorNewView: FC<{}> = props => -{ - const [ isVisible, setIsVisible ] = useState(false); - const { setIsVisible: setEditorVisibility, avatarModels, activeModelKey, setActiveModelKey } = useAvatarEditor(); - - const processAction = (action: string) => - { - switch(action) - { - case AvatarEditorAction.ACTION_CLEAR: - return; - case AvatarEditorAction.ACTION_RESET: - return; - case AvatarEditorAction.ACTION_RANDOMIZE: - return; - case AvatarEditorAction.ACTION_SAVE: - return; - } - } - - useEffect(() => - { - const linkTracker: ILinkEventTracker = { - linkReceived: (url: string) => - { - const parts = url.split('/'); - - if(parts.length < 2) return; - - switch(parts[1]) - { - case 'show': - setIsVisible(true); - return; - case 'hide': - setIsVisible(false); - return; - case 'toggle': - setIsVisible(prevValue => !prevValue); - return; - } - }, - eventUrlPrefix: 'avatar-editor/' - }; - - AddLinkEventTracker(linkTracker); - - return () => RemoveLinkEventTracker(linkTracker); - }, []); - - useEffect(() => - { - setEditorVisibility(isVisible) - }, [ isVisible, setEditorVisibility ]); - - if(!isVisible) return null; - - return ( - - setIsVisible(false) } /> - - { Object.keys(avatarModels).map(modelKey => - { - const isActive = (activeModelKey === modelKey); - - return ( - setActiveModelKey(modelKey) }> - { LocalizeText(`avatareditor.category.${ modelKey }`) } - - ); - }) } - - - - - { ((activeModelKey.length > 0) && (activeModelKey !== AvatarEditorFigureCategory.WARDROBE)) && - } - { (activeModelKey === AvatarEditorFigureCategory.WARDROBE) } - - - { /* */ } - - - - - - - - - - - - - ); -} diff --git a/src/components/avatar-editor-new/views/AvatarEditorIcon.tsx b/src/components/avatar-editor-new/views/AvatarEditorIcon.tsx deleted file mode 100644 index a05baa1..0000000 --- a/src/components/avatar-editor-new/views/AvatarEditorIcon.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FC, useMemo } from 'react'; -import { Base, BaseProps } from '../../../common'; - -type AvatarIconType = 'male' | 'female' | 'clear' | 'sellable' | string; - -export interface AvatarEditorIconProps extends BaseProps -{ - icon: AvatarIconType; - selected?: boolean; -} - -export const AvatarEditorIcon: FC = props => -{ - const { icon = null, selected = false, classNames = [], children = null, ...rest } = props; - - const getClassNames = useMemo(() => - { - const newClassNames: string[] = [ 'nitro-avatar-editor-spritesheet' ]; - - if(icon && icon.length) newClassNames.push(icon + '-icon'); - - if(selected) newClassNames.push('selected'); - - if(classNames.length) newClassNames.push(...classNames); - - return newClassNames; - }, [ icon, selected, classNames ]); - - return -} diff --git a/src/components/avatar-editor-new/views/AvatarEditorModelView.tsx b/src/components/avatar-editor-new/views/AvatarEditorModelView.tsx deleted file mode 100644 index c012383..0000000 --- a/src/components/avatar-editor-new/views/AvatarEditorModelView.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { AvatarEditorFigureCategory } from '@nitrots/nitro-renderer'; -import { FC, useEffect, useMemo, useState } from 'react'; -import { FigureData, IAvatarEditorCategory } from '../../../api'; -import { Column, Flex, Grid } from '../../../common'; -import { useAvatarEditor } from '../../../hooks'; -import { AvatarEditorIcon } from './AvatarEditorIcon'; -import { AvatarEditorFigureSetView } from './figure-set'; -import { AvatarEditorPaletteSetView } from './palette-set'; - -export const AvatarEditorModelView: FC<{ - name: string, - categories: IAvatarEditorCategory[] -}> = props => -{ - const { name = '', categories = [] } = props; - const [ activeSetType, setActiveSetType ] = useState(''); - const { maxPaletteCount = 1 } = useAvatarEditor(); - - const activeCategory = useMemo(() => - { - return categories.find(category => category.setType === activeSetType) ?? null; - }, [ categories, activeSetType ]); - - const setGender = (gender: string) => - { - // - } - - useEffect(() => - { - if(!activeCategory) return; - - // we need to run this when we change which parts r selected - /* for(const partItem of activeCategory.partItems) - { - if(!partItem || !part.isSelected) continue; - - setMaxPaletteCount(part.maxColorIndex || 1); - - break; - } */ - }, [ activeCategory ]) - - useEffect(() => - { - if(!categories || !categories.length) return; - - setActiveSetType(categories[0]?.setType) - }, [ categories ]); - - if(!activeCategory) return null; - - return ( - - - { (name === AvatarEditorFigureCategory.GENERIC) && - <> - setGender(FigureData.MALE) }> - - - setGender(FigureData.FEMALE) }> - - - } - { (name !== AvatarEditorFigureCategory.GENERIC) && (categories.length > 0) && categories.map(category => - { - return ( - setActiveSetType(category.setType) }> - - - ); - }) } - - - - - - { (maxPaletteCount >= 1) && - } - { (maxPaletteCount === 2) && - } - - - ); -} diff --git a/src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetItemView.tsx b/src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetItemView.tsx deleted file mode 100644 index 1c00fc9..0000000 --- a/src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetItemView.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { FC, useEffect, useState } from 'react'; -import { AvatarEditorThumbnailsHelper, FigureData, GetConfigurationValue, IAvatarEditorCategoryPartItem } from '../../../../api'; -import { LayoutCurrencyIcon, LayoutGridItem, LayoutGridItemProps } from '../../../../common'; -import { useAvatarEditor } from '../../../../hooks'; -import { AvatarEditorIcon } from '../AvatarEditorIcon'; - -export const AvatarEditorFigureSetItemView: FC<{ - setType: string; - partItem: IAvatarEditorCategoryPartItem; - isSelected: boolean; -} & LayoutGridItemProps> = props => -{ - const { setType = null, partItem = null, isSelected = false, ...rest } = props; - const [ assetUrl, setAssetUrl ] = useState(''); - const { selectedColorParts = null, getFigureStringWithFace = null } = useAvatarEditor(); - - const isHC = !GetConfigurationValue('hc.disabled', false) && ((partItem.partSet?.clubLevel ?? 0) > 0); - - useEffect(() => - { - if(!setType || !setType.length || !partItem) return; - - const loadImage = async () => - { - const isHC = !GetConfigurationValue('hc.disabled', false) && ((partItem.partSet?.clubLevel ?? 0) > 0); - - let url: string = null; - - if(setType === FigureData.FACE) - { - url = await AvatarEditorThumbnailsHelper.buildForFace(getFigureStringWithFace(partItem.id), isHC); - } - else - { - url = await AvatarEditorThumbnailsHelper.build(setType, partItem, partItem.usesColor, selectedColorParts[setType] ?? null, isHC); - } - - if(url && url.length) setAssetUrl(url); - } - - loadImage(); - }, [ setType, partItem, selectedColorParts, getFigureStringWithFace ]); - - if(!partItem) return null; - - return ( - - { !partItem.isClear && isHC && } - { partItem.isClear && } - { !partItem.isClear && partItem.partSet.isSellable && } - - ); -} diff --git a/src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetView.tsx b/src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetView.tsx deleted file mode 100644 index 7db3743..0000000 --- a/src/components/avatar-editor-new/views/figure-set/AvatarEditorFigureSetView.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { FC, useRef } from 'react'; -import { IAvatarEditorCategory, IAvatarEditorCategoryPartItem } from '../../../../api'; -import { InfiniteGrid } from '../../../../common'; -import { useAvatarEditor } from '../../../../hooks'; -import { AvatarEditorFigureSetItemView } from './AvatarEditorFigureSetItemView'; - -export const AvatarEditorFigureSetView: FC<{ - category: IAvatarEditorCategory -}> = props => -{ - const { category = null } = props; - const { selectedParts = null, selectEditorPart } = useAvatarEditor(); - const elementRef = useRef(null); - - const isPartItemSelected = (partItem: IAvatarEditorCategoryPartItem) => - { - if(!category || !category.setType || !selectedParts || !selectedParts[category.setType]) return false; - - const partId = selectedParts[category.setType]; - - return (partId === partItem.id); - } - - const columnCount = 3; - - return ( - - { - if(!item) return null; - - return ( - selectEditorPart(category.setType, item.partSet?.id ?? -1) } /> - ) - } } /> - ); -} diff --git a/src/components/avatar-editor-new/views/figure-set/index.ts b/src/components/avatar-editor-new/views/figure-set/index.ts deleted file mode 100644 index 0c5880b..0000000 --- a/src/components/avatar-editor-new/views/figure-set/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './AvatarEditorFigureSetItemView'; -export * from './AvatarEditorFigureSetView'; diff --git a/src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetItemView.tsx b/src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetItemView.tsx deleted file mode 100644 index 672c356..0000000 --- a/src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetItemView.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { ColorConverter, IPartColor } from '@nitrots/nitro-renderer'; -import { FC } from 'react'; -import { GetConfigurationValue } from '../../../../api'; -import { LayoutCurrencyIcon, LayoutGridItem, LayoutGridItemProps } from '../../../../common'; - -export interface AvatarEditorPaletteSetItemProps extends LayoutGridItemProps -{ - setType: string; - partColor: IPartColor; - isSelected: boolean; -} - -// its disabled if its hc and you dont have it -export const AvatarEditorPaletteSetItem: FC = props => -{ - const { setType = null, partColor = null, isSelected = false, ...rest } = props; - - if(!partColor) return null; - - const isHC = !GetConfigurationValue('hc.disabled', false) && (partColor.clubLevel > 0); - - return ( - - { isHC && } - - ); -} diff --git a/src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetView.tsx b/src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetView.tsx deleted file mode 100644 index 2e72cd4..0000000 --- a/src/components/avatar-editor-new/views/palette-set/AvatarEditorPaletteSetView.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { IPartColor } from '@nitrots/nitro-renderer'; -import { FC, useRef } from 'react'; -import { IAvatarEditorCategory } from '../../../../api'; -import { AutoGrid } from '../../../../common'; -import { useAvatarEditor } from '../../../../hooks'; -import { AvatarEditorPaletteSetItem } from './AvatarEditorPaletteSetItemView'; - -export const AvatarEditorPaletteSetView: FC<{ - category: IAvatarEditorCategory, - paletteIndex: number; -}> = props => -{ - const { category = null, paletteIndex = -1 } = props; - const paletteSet = category?.colorItems[paletteIndex] ?? null; - const { selectedColors = null, selectEditorColor } = useAvatarEditor(); - const elementRef = useRef(null); - - const isPartColorSelected = (partColor: IPartColor) => - { - if(!category || !category.setType || !selectedColors || !selectedColors[category.setType] || !selectedColors[category.setType][paletteIndex]) return false; - - const colorId = selectedColors[category.setType][paletteIndex]; - - return (colorId === partColor.id); - } - - return ( - - { (paletteSet.length > 0) && paletteSet.map(item => - selectEditorColor(category.setType, paletteIndex, item.id) } />) } - - ); -} diff --git a/src/components/avatar-editor-new/views/palette-set/index.ts b/src/components/avatar-editor-new/views/palette-set/index.ts deleted file mode 100644 index 977e5b9..0000000 --- a/src/components/avatar-editor-new/views/palette-set/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './AvatarEditorPaletteSetItemView'; -export * from './AvatarEditorPaletteSetView'; diff --git a/src/components/avatar-editor/AvatarEditorView.scss b/src/components/avatar-editor/AvatarEditorView.scss index 22b873d..a220170 100644 --- a/src/components/avatar-editor/AvatarEditorView.scss +++ b/src/components/avatar-editor/AvatarEditorView.scss @@ -258,7 +258,7 @@ } .nitro-avatar-editor { - width: $avatar-editor-width; + width: $avatar-editor-width + 50px; height: $avatar-editor-height; .category-item { diff --git a/src/components/avatar-editor/AvatarEditorWardrobeView.tsx b/src/components/avatar-editor/AvatarEditorWardrobeView.tsx index bd2800e..c4dc63f 100644 --- a/src/components/avatar-editor/AvatarEditorWardrobeView.tsx +++ b/src/components/avatar-editor/AvatarEditorWardrobeView.tsx @@ -1,5 +1,7 @@ import { GetAvatarRenderManager, IAvatarFigureContainer, SaveWardrobeOutfitMessageComposer } from '@nitrots/nitro-renderer'; import { FC, useCallback } from 'react'; +import { FaSave } from 'react-icons/fa'; +import { GiClothes } from 'react-icons/gi'; import { GetClubMemberLevel, GetConfigurationValue, LocalizeText, SendMessageComposer } from '../../api'; import { Base, Button, Flex, InfiniteGrid, LayoutAvatarImageView, LayoutCurrencyIcon, LayoutGridItem } from '../../common'; import { useAvatarEditor } from '../../hooks'; @@ -48,11 +50,10 @@ export const AvatarEditorWardrobeView: FC<{}> = props => } { !hcDisabled && (clubLevel > 0) && } - - - { figureContainer && - } - + + + {figureContainer && } + ) } } /> diff --git a/src/components/avatar-editor/views/AvatarEditorFigurePreviewView.tsx b/src/components/avatar-editor/views/AvatarEditorFigurePreviewView.tsx deleted file mode 100644 index d5715ac..0000000 --- a/src/components/avatar-editor/views/AvatarEditorFigurePreviewView.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { AvatarDirectionAngle } from '@nitrots/nitro-renderer'; -import { FC, useEffect, useState } from 'react'; -import { FigureData } from '../../../api'; -import { Base, Column, LayoutAvatarImageView } from '../../../common'; -import { AvatarEditorIcon } from './AvatarEditorIcon'; - -export interface AvatarEditorFigurePreviewViewProps -{ - figureData: FigureData; -} - -export const AvatarEditorFigurePreviewView: FC = props => -{ - const { figureData = null } = props; - const [ updateId, setUpdateId ] = useState(-1); - - const rotateFigure = (direction: number) => - { - if(direction < AvatarDirectionAngle.MIN_DIRECTION) - { - direction = (AvatarDirectionAngle.MAX_DIRECTION + (direction + 1)); - } - - if(direction > AvatarDirectionAngle.MAX_DIRECTION) - { - direction = (direction - (AvatarDirectionAngle.MAX_DIRECTION + 1)); - } - - figureData.direction = direction; - } - - useEffect(() => - { - if(!figureData) return; - - figureData.notify = () => setUpdateId(prevValue => (prevValue + 1)); - - return () => - { - figureData.notify = null; - } - }, [ figureData ] ); - - return ( - - - - - - rotateFigure(figureData.direction + 1) } /> - rotateFigure(figureData.direction - 1) } /> - - - ); -} diff --git a/src/components/avatar-editor/views/AvatarEditorIcon.tsx b/src/components/avatar-editor/views/AvatarEditorIcon.tsx deleted file mode 100644 index a05baa1..0000000 --- a/src/components/avatar-editor/views/AvatarEditorIcon.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FC, useMemo } from 'react'; -import { Base, BaseProps } from '../../../common'; - -type AvatarIconType = 'male' | 'female' | 'clear' | 'sellable' | string; - -export interface AvatarEditorIconProps extends BaseProps -{ - icon: AvatarIconType; - selected?: boolean; -} - -export const AvatarEditorIcon: FC = props => -{ - const { icon = null, selected = false, classNames = [], children = null, ...rest } = props; - - const getClassNames = useMemo(() => - { - const newClassNames: string[] = [ 'nitro-avatar-editor-spritesheet' ]; - - if(icon && icon.length) newClassNames.push(icon + '-icon'); - - if(selected) newClassNames.push('selected'); - - if(classNames.length) newClassNames.push(...classNames); - - return newClassNames; - }, [ icon, selected, classNames ]); - - return -} diff --git a/src/components/avatar-editor/views/AvatarEditorModelView.tsx b/src/components/avatar-editor/views/AvatarEditorModelView.tsx deleted file mode 100644 index 6eb8fe3..0000000 --- a/src/components/avatar-editor/views/AvatarEditorModelView.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { Dispatch, FC, SetStateAction, useCallback, useEffect, useState } from 'react'; -import { CategoryData, FigureData, IAvatarEditorCategoryModel } from '../../../api'; -import { Column, Flex, Grid } from '../../../common'; -import { AvatarEditorIcon } from './AvatarEditorIcon'; -import { AvatarEditorFigureSetView } from './figure-set/AvatarEditorFigureSetView'; -import { AvatarEditorPaletteSetView } from './palette-set/AvatarEditorPaletteSetView'; -export interface AvatarEditorModelViewProps -{ - model: IAvatarEditorCategoryModel; - gender: string; - setGender: Dispatch>; -} - -export const AvatarEditorModelView: FC = props => -{ - const { model = null, gender = null, setGender = null } = props; - const [ activeCategory, setActiveCategory ] = useState(null); - const [ maxPaletteCount, setMaxPaletteCount ] = useState(1); - - const selectCategory = useCallback((name: string) => - { - const category = model.categories.get(name); - - if(!category) return; - - category.init(); - - setActiveCategory(category); - - for(const part of category.parts) - { - if(!part || !part.isSelected) continue; - - setMaxPaletteCount(part.maxColorIndex || 1); - - break; - } - }, [ model ]); - - useEffect(() => - { - model.init(); - - for(const name of model.categories.keys()) - { - selectCategory(name); - - break; - } - }, [ model, selectCategory ]); - - if(!model || !activeCategory) return null; - - return ( - - - { model.canSetGender && - <> - setGender(FigureData.MALE) }> - - - setGender(FigureData.FEMALE) }> - - - } - { !model.canSetGender && model.categories && (model.categories.size > 0) && Array.from(model.categories.keys()).map(name => - { - const category = model.categories.get(name); - - return ( - selectCategory(name) }> - - - ); - }) } - - - - - - { (maxPaletteCount >= 1) && - } - { (maxPaletteCount === 2) && - } - - - ); -} diff --git a/src/components/avatar-editor/views/AvatarEditorWardrobeView.tsx b/src/components/avatar-editor/views/AvatarEditorWardrobeView.tsx deleted file mode 100644 index 015d3b1..0000000 --- a/src/components/avatar-editor/views/AvatarEditorWardrobeView.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { GetAvatarRenderManager, IAvatarFigureContainer, SaveWardrobeOutfitMessageComposer } from '@nitrots/nitro-renderer'; -import { Dispatch, FC, SetStateAction, useCallback, useMemo } from 'react'; -import { FigureData, GetClubMemberLevel, GetConfigurationValue, LocalizeText, SendMessageComposer } from '../../../api'; -import { AutoGrid, Base, Button, Flex, LayoutAvatarImageView, LayoutCurrencyIcon, LayoutGridItem } from '../../../common'; - -export interface AvatarEditorWardrobeViewProps -{ - figureData: FigureData; - savedFigures: [ IAvatarFigureContainer, string ][]; - setSavedFigures: Dispatch>; - loadAvatarInEditor: (figure: string, gender: string, reset?: boolean) => void; -} - -export const AvatarEditorWardrobeView: FC = props => -{ - const { figureData = null, savedFigures = [], setSavedFigures = null, loadAvatarInEditor = null } = props; - - const hcDisabled = GetConfigurationValue('hc.disabled', false); - - const wearFigureAtIndex = useCallback((index: number) => - { - if((index >= savedFigures.length) || (index < 0)) return; - - const [ figure, gender ] = savedFigures[index]; - - loadAvatarInEditor(figure.getFigureString(), gender); - }, [ savedFigures, loadAvatarInEditor ]); - - const saveFigureAtWardrobeIndex = useCallback((index: number) => - { - if(!figureData || (index >= savedFigures.length) || (index < 0)) return; - - const newFigures = [ ...savedFigures ]; - - const figure = figureData.getFigureString(); - const gender = figureData.gender; - - newFigures[index] = [ GetAvatarRenderManager().createFigureContainer(figure), gender ]; - - setSavedFigures(newFigures); - SendMessageComposer(new SaveWardrobeOutfitMessageComposer((index + 1), figure, gender)); - }, [ figureData, savedFigures, setSavedFigures ]); - - const figures = useMemo(() => - { - if(!savedFigures || !savedFigures.length) return []; - - const items: JSX.Element[] = []; - - savedFigures.forEach(([ figureContainer, gender ], index) => - { - let clubLevel = 0; - - if(figureContainer) clubLevel = GetAvatarRenderManager().getFigureClubLevel(figureContainer, gender); - - items.push( - - { figureContainer && - } - - { !hcDisabled && (clubLevel > 0) && } - - - { figureContainer && - } - - - ); - }); - - return items; - }, [ savedFigures, hcDisabled, saveFigureAtWardrobeIndex, wearFigureAtIndex ]); - - return ( - - { figures } - - ); -} diff --git a/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetItemView.tsx b/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetItemView.tsx deleted file mode 100644 index 3cd6383..0000000 --- a/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetItemView.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { FC, useEffect, useState } from 'react'; -import { AvatarEditorGridPartItem, GetConfigurationValue } from '../../../../api'; -import { LayoutCurrencyIcon, LayoutGridItem, LayoutGridItemProps } from '../../../../common'; -import { AvatarEditorIcon } from '../AvatarEditorIcon'; - -export interface AvatarEditorFigureSetItemViewProps extends LayoutGridItemProps -{ - partItem: AvatarEditorGridPartItem; -} - -export const AvatarEditorFigureSetItemView: FC = props => -{ - const { partItem = null, children = null, ...rest } = props; - const [ updateId, setUpdateId ] = useState(-1); - - const hcDisabled = GetConfigurationValue('hc.disabled', false); - - useEffect(() => - { - const rerender = () => setUpdateId(prevValue => (prevValue + 1)); - - partItem.notify = rerender; - - return () => partItem.notify = null; - }, [ partItem ]); - - return ( - - { !hcDisabled && partItem.isHC && } - { partItem.isClear && } - { partItem.isSellable && } - { children } - - ); -} diff --git a/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx b/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx deleted file mode 100644 index 3755731..0000000 --- a/src/components/avatar-editor/views/figure-set/AvatarEditorFigureSetView.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { Dispatch, FC, SetStateAction, useCallback, useEffect, useRef } from 'react'; -import { AvatarEditorGridPartItem, CategoryData, IAvatarEditorCategoryModel } from '../../../../api'; -import { AutoGrid } from '../../../../common'; -import { AvatarEditorFigureSetItemView } from './AvatarEditorFigureSetItemView'; - -export interface AvatarEditorFigureSetViewProps -{ - model: IAvatarEditorCategoryModel; - category: CategoryData; - setMaxPaletteCount: Dispatch>; -} - -export const AvatarEditorFigureSetView: FC = props => -{ - const { model = null, category = null, setMaxPaletteCount = null } = props; - const elementRef = useRef(null); - - const selectPart = useCallback((item: AvatarEditorGridPartItem) => - { - const index = category.parts.indexOf(item); - - if(index === -1) return; - - model.selectPart(category.name, index); - - const partItem = category.getCurrentPart(); - - setMaxPaletteCount(partItem.maxColorIndex || 1); - }, [ model, category, setMaxPaletteCount ]); - - useEffect(() => - { - if(!model || !category || !elementRef || !elementRef.current) return; - - elementRef.current.scrollTop = 0; - }, [ model, category ]); - - return ( - - { (category.parts.length > 0) && category.parts.map((item, index) => - selectPart(item) } />) } - - ); -} diff --git a/src/components/avatar-editor/views/figure-set/index.ts b/src/components/avatar-editor/views/figure-set/index.ts deleted file mode 100644 index 0c5880b..0000000 --- a/src/components/avatar-editor/views/figure-set/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './AvatarEditorFigureSetItemView'; -export * from './AvatarEditorFigureSetView'; diff --git a/src/components/avatar-editor/views/index.ts b/src/components/avatar-editor/views/index.ts deleted file mode 100644 index a92b3b7..0000000 --- a/src/components/avatar-editor/views/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './AvatarEditorFigurePreviewView'; -export * from './AvatarEditorIcon'; -export * from './AvatarEditorModelView'; -export * from './AvatarEditorWardrobeView'; -export * from './figure-set'; -export * from './palette-set'; diff --git a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx b/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx deleted file mode 100644 index 7868057..0000000 --- a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetItemView.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { FC, useEffect, useState } from 'react'; -import { AvatarEditorGridColorItem, GetConfigurationValue } from '../../../../api'; -import { LayoutCurrencyIcon, LayoutGridItem, LayoutGridItemProps } from '../../../../common'; - -export interface AvatarEditorPaletteSetItemProps extends LayoutGridItemProps -{ - colorItem: AvatarEditorGridColorItem; -} - -export const AvatarEditorPaletteSetItem: FC = props => -{ - const { colorItem = null, children = null, ...rest } = props; - const [ updateId, setUpdateId ] = useState(-1); - - const hcDisabled = GetConfigurationValue('hc.disabled', false); - - useEffect(() => - { - const rerender = () => setUpdateId(prevValue => (prevValue + 1)); - - colorItem.notify = rerender; - - return () => colorItem.notify = null; - }, [ colorItem ]); - - return ( - - { !hcDisabled && colorItem.isHC && } - { children } - - ); -} diff --git a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx b/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx deleted file mode 100644 index c55dcb4..0000000 --- a/src/components/avatar-editor/views/palette-set/AvatarEditorPaletteSetView.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { FC, useCallback, useEffect, useRef } from 'react'; -import { AvatarEditorGridColorItem, CategoryData, IAvatarEditorCategoryModel } from '../../../../api'; -import { AutoGrid } from '../../../../common'; -import { AvatarEditorPaletteSetItem } from './AvatarEditorPaletteSetItemView'; - -export interface AvatarEditorPaletteSetViewProps -{ - model: IAvatarEditorCategoryModel; - category: CategoryData; - paletteSet: AvatarEditorGridColorItem[]; - paletteIndex: number; -} - -export const AvatarEditorPaletteSetView: FC = props => -{ - const { model = null, category = null, paletteSet = [], paletteIndex = -1 } = props; - const elementRef = useRef(null); - - const selectColor = useCallback((item: AvatarEditorGridColorItem) => - { - const index = paletteSet.indexOf(item); - - if(index === -1) return; - - model.selectColor(category.name, index, paletteIndex); - }, [ model, category, paletteSet, paletteIndex ]); - - useEffect(() => - { - if(!model || !category || !elementRef || !elementRef.current) return; - - elementRef.current.scrollTop = 0; - }, [ model, category ]); - - return ( - - { (paletteSet.length > 0) && paletteSet.map((item, index) => - selectColor(item) } />) } - - ); -} diff --git a/src/components/avatar-editor/views/palette-set/index.ts b/src/components/avatar-editor/views/palette-set/index.ts deleted file mode 100644 index 977e5b9..0000000 --- a/src/components/avatar-editor/views/palette-set/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './AvatarEditorPaletteSetItemView'; -export * from './AvatarEditorPaletteSetView'; diff --git a/src/components/friends/FriendsView.scss b/src/components/friends/FriendsView.scss index 724d728..6c355eb 100644 --- a/src/components/friends/FriendsView.scss +++ b/src/components/friends/FriendsView.scss @@ -124,9 +124,10 @@ position: relative; padding-left:38px; text-align: left; + pointer-events: all; &.friend-bar-item-active { - margin-bottom:21px; + } &.friend-bar-search-item-active { @@ -177,6 +178,23 @@ } } +.friends-myinfo { + > :first-child { + border-bottom: 1px dashed white; + } + + .myinfo-avatar { + height: 60px; + width: 60px; + display: flex; + justify-content: center; + + .avatar-image { + margin-top: -17px; + } + } +} + .nitro-friends-messenger { width: $messenger-width; height: $messenger-height; @@ -270,4 +288,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/components/friends/views/friends-bar/FriendBarItemView.tsx b/src/components/friends/views/friends-bar/FriendBarItemView.tsx index de4baa8..c5db1e3 100644 --- a/src/components/friends/views/friends-bar/FriendBarItemView.tsx +++ b/src/components/friends/views/friends-bar/FriendBarItemView.tsx @@ -1,6 +1,6 @@ import { FindNewFriendsMessageComposer, MouseEventType } from '@nitrots/nitro-renderer'; import { FC, useEffect, useRef, useState } from 'react'; -import { GetUserProfile, LocalizeText, MessengerFriend, OpenMessengerChat, SendMessageComposer } from '../../../../api'; +import { GetUserProfile, LocalizeText, MessengerFriend, OpenMessengerChat, SendMessageComposer } from '../../../../api'; import { Base, Button, LayoutAvatarImageView, LayoutBadgeImageView } from '../../../../common'; import { useFriends } from '../../../../hooks'; @@ -49,10 +49,10 @@ export const FriendBarItemView: FC<{ friend: MessengerFriend }> = props => return (
setVisible(prevValue => !prevValue) }>
0 ? 'avatar': 'group' }` }> - { (friend.id > 0) && } - 0) && } + 0 ? friend.figure : (friend.id <= 0 && friend.figure === 'ADM') ? 'ha-3409-1413-70.lg-285-89.ch-3032-1334-109.sh-3016-110.hd-185-1359.ca-3225-110-62.wa-3264-62-62.fa-1206-90.hr-3322-1403' : friend.figure - } isgroup={friend.id <= 0 ? 1 : 0} direction={friend.id > 0 ? 2 : 3} /> + } isgroup={friend.id <= 0 ? 1 : 0} direction={isVisible ? 2 : 3} />
{ friend.name }
diff --git a/src/components/friends/views/messenger/FriendsMessengerView.tsx b/src/components/friends/views/messenger/FriendsMessengerView.tsx index db8b0dd..c0e26ad 100644 --- a/src/components/friends/views/messenger/FriendsMessengerView.tsx +++ b/src/components/friends/views/messenger/FriendsMessengerView.tsx @@ -116,18 +116,17 @@ export const FriendsMessengerView: FC<{}> = props => { visibleThreads && (visibleThreads.length > 0) && visibleThreads.map(thread => { return ( - setActiveThreadId(thread.threadId) }> - { thread.unread && - } - - - 0 ? thread.participant.figure : thread.participant.id <= 0 && thread.participant.figure === 'ADM' ? 'ha-3409-1413-70.lg-285-89.ch-3032-1334-109.sh-3016-110.hd-185-1359.ca-3225-110-62.wa-3264-62-62.fa-1206-90.hr-3322-1403' : thread.participant.figure - } headOnly={true} direction={thread.participant.id > 0 ? 2 : 3} scale={0.9} /> - - { thread.participant.name } - - + setActiveThreadId(thread.threadId) }> + { thread.unread && } + + + 0 ? thread.participant.figure : thread.participant.id <= 0 && thread.participant.figure === 'ADM' ? 'ha-3409-1413-70.lg-285-89.ch-3032-1334-109.sh-3016-110.hd-185-1359.ca-3225-110-62.wa-3264-62-62.fa-1206-90.hr-3322-1403' : thread.participant.figure + } headOnly={true} direction={thread.participant.id > 0 ? 2 : 3} /> + + { thread.participant.name } + + ); }) } @@ -138,19 +137,17 @@ export const FriendsMessengerView: FC<{}> = props => <> { LocalizeText('messenger.window.separator', [ 'FRIEND_NAME' ], [ activeThread.participant.name ]) } - - - - - - - + {activeThread && activeThread.participant.id > 0 && ( + + + + + + + + )} @@ -172,4 +169,4 @@ export const FriendsMessengerView: FC<{}> = props => ); -} +} \ No newline at end of file diff --git a/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadGroup.tsx b/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadGroup.tsx index 4ed6c99..10a5601 100644 --- a/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadGroup.tsx +++ b/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadGroup.tsx @@ -70,4 +70,4 @@ export const FriendsMessengerThreadGroup: FC<{ thread: MessengerThread, group: M } ); -} +} \ No newline at end of file diff --git a/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadView.tsx b/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadView.tsx index 962a668..7562778 100644 --- a/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadView.tsx +++ b/src/components/friends/views/messenger/messenger-thread/FriendsMessengerThreadView.tsx @@ -13,4 +13,4 @@ export const FriendsMessengerThreadView: FC<{ thread: MessengerThread }> = props { (thread.groups.length > 0) && thread.groups.map((group, index) => ) } ); -} +} \ No newline at end of file diff --git a/src/components/inventory/InventoryView.tsx b/src/components/inventory/InventoryView.tsx index a2fd6e1..6f50a77 100644 --- a/src/components/inventory/InventoryView.tsx +++ b/src/components/inventory/InventoryView.tsx @@ -5,6 +5,7 @@ import { NitroCardContentView, NitroCardHeaderView, NitroCardTabsItemView, Nitro import { useInventoryTrade, useInventoryUnseenTracker, useMessageEvent, useNitroEvent } from '../../hooks'; import { InventoryBadgeView } from './views/badge/InventoryBadgeView'; import { InventoryBotView } from './views/bot/InventoryBotView'; +import { InventoryFurnitureDeleteView } from './views/furniture/InventoryFurnitureDeleteView'; import { InventoryFurnitureView } from './views/furniture/InventoryFurnitureView'; import { InventoryTradeView } from './views/furniture/InventoryTradeView'; import { InventoryPetView } from './views/pet/InventoryPetView'; @@ -142,6 +143,7 @@ export const InventoryView: FC<{}> = props => { (currentTab === TAB_BADGES ) && } + } { isTrading && diff --git a/src/components/inventory/views/furniture/InventoryFurnitureDeleteView.tsx b/src/components/inventory/views/furniture/InventoryFurnitureDeleteView.tsx new file mode 100644 index 0000000..5c4cf4d --- /dev/null +++ b/src/components/inventory/views/furniture/InventoryFurnitureDeleteView.tsx @@ -0,0 +1,96 @@ +import { DeleteItemMessageComposer } from '@nitrots/nitro-renderer'; +import { FC, useState } from 'react'; +import { FaCaretLeft, FaCaretRight } from 'react-icons/fa'; +import { FurnitureItem, LocalizeText, ProductTypeEnum, SendMessageComposer } from '../../../../api'; +import { Button, Column, Flex, Grid, LayoutFurniImageView, NitroCardContentView, NitroCardHeaderView, NitroCardView, Text } from '../../../../common'; +import { DeleteItemConfirmEvent } from '../../../../events'; +import { useNotification, useUiEvent } from '../../../../hooks'; + +export const InventoryFurnitureDeleteView : FC<{}> = props => +{ + const [ item, setItem ] = useState(null); + const [ amount, setAmount ] = useState(1); + const [ tempAmount, setTempAmount ] = useState('1'); + const [ maxAmount, setMaxAmount ] = useState(1); + + const updateAmount = (amnt: string) => + { + let newValue: number = parseInt(amnt); + + if(isNaN(newValue) || (newValue === amount)) return; + + newValue = Math.max(newValue, 1); + newValue = Math.min(newValue, maxAmount); + + if(newValue === amount) return; + + setTempAmount(newValue.toString()); + setAmount(newValue); + } + + const { showConfirm = null } = useNotification(); + + useUiEvent(DeleteItemConfirmEvent.DELETE_ITEM_CONFIRM, event => { + setItem(event.item); + setMaxAmount(event.amount); + }); + + if(!item) return null; + + const getFurniTitle = (item ? LocalizeText(item.isWallItem ? 'wallItem.name.' + item.type : 'roomItem.name.' + item.type) : ''); + const getFurniDescription = (item ? LocalizeText(item.isWallItem ? 'wallItem.desc.' + item.type : 'roomItem.desc.' + item.type) : ''); + + const deleteItem = () => + { + if(!item) return; + + showConfirm(LocalizeText('inventory.delete.confirm_delete.info', [ 'furniname', 'amount' ], [ getFurniTitle, amount.toString() ]), () => + { + SendMessageComposer(new DeleteItemMessageComposer(item.id, amount)); + setItem(null); + setAmount(1); + setMaxAmount(1); + setTempAmount('1'); + }, + () => + { + setItem(null); + setAmount(1); + setMaxAmount(1); + setTempAmount('1'); + }, null, null, LocalizeText('inventory.delete.confirm_delete.title')); + } + + return ( + + { setItem(null); setAmount(1); setMaxAmount(1); setTempAmount('1'); } } /> + + + + + + + + { getFurniTitle } + { getFurniDescription } + + + { LocalizeText('inventory.delete.amount') } + + updateAmount((amount - 1).toString()) } /> + updateAmount(event.target.value) } placeholder={ LocalizeText('inventory.delete.amount') } /> + updateAmount((amount + 1).toString()) } /> + + + + + + + + + ) +} \ No newline at end of file diff --git a/src/components/inventory/views/furniture/InventoryFurnitureView.tsx b/src/components/inventory/views/furniture/InventoryFurnitureView.tsx index 657c710..d975668 100644 --- a/src/components/inventory/views/furniture/InventoryFurnitureView.tsx +++ b/src/components/inventory/views/furniture/InventoryFurnitureView.tsx @@ -3,6 +3,8 @@ import { FC, useEffect, useState } from 'react'; import { DispatchUiEvent, FurniCategory, GroupItem, LocalizeText, UnseenItemCategory, attemptItemPlacement } from '../../../../api'; import { AutoGrid, Button, Column, Grid, LayoutLimitedEditionCompactPlateView, LayoutRarityLevelView, LayoutRoomPreviewerView, Text } from '../../../../common'; import { CatalogPostMarketplaceOfferEvent } from '../../../../events'; +import { DeleteItemConfirmEvent } from '../../../../events'; +import { FaTrashAlt } from 'react-icons/fa' import { useInventoryFurni, useInventoryUnseenTracker } from '../../../../hooks'; import { InventoryCategoryEmptyView } from '../InventoryCategoryEmptyView'; import { InventoryFurnitureItemView } from './InventoryFurnitureItemView'; @@ -14,6 +16,11 @@ interface InventoryFurnitureViewProps roomPreviewer: RoomPreviewer; } +const FILTER_TYPE_EVERYTHING = 'inventory.filter.option.everything'; +const FILTER_TYPE_FLOOR = 'inventory.furni.tab.floor'; +const FILTER_TYPE_WALL = 'inventory.furni.tab.wall'; +const FILTER_TYPE_WIRED = 'inventory.furni.tab.wired'; + const attemptPlaceMarketplaceOffer = (groupItem: GroupItem) => { const item = groupItem.getLastItem(); @@ -25,6 +32,15 @@ const attemptPlaceMarketplaceOffer = (groupItem: GroupItem) => DispatchUiEvent(new CatalogPostMarketplaceOfferEvent(item)); } +const attemptDeleteItem = (groupItem: GroupItem) => +{ + const item = groupItem.getLastItem(); + + if(!item) return false; + + DispatchUiEvent(new DeleteItemConfirmEvent(item, groupItem.getTotalCount())); +} + export const InventoryFurnitureView: FC = props => { const { roomSession = null, roomPreviewer = null } = props; @@ -32,6 +48,32 @@ export const InventoryFurnitureView: FC = props => const [ filteredGroupItems, setFilteredGroupItems ] = useState([]); const { groupItems = [], selectedItem = null, activate = null, deactivate = null } = useInventoryFurni(); const { resetItems = null } = useInventoryUnseenTracker(); + const [ filterType = string, setFilterType ] = useState(FILTER_TYPE_EVERYTHING); + + useEffect(() => + { + const filteredItems = groupItems.filter(item => + { + const isWallItem = item.isWallItem; + const isFloorItem = !isWallItem; + const isWiredItem = item.name.startsWith('WIRED'); + + switch (filterType) + { + case FILTER_TYPE_WALL: + return isWallItem; + case FILTER_TYPE_FLOOR: + return isFloorItem; + case FILTER_TYPE_WIRED: + return isWiredItem; + case FILTER_TYPE_EVERYTHING: + default: + return true; + } + }); + + setFilteredGroupItems(filteredItems); + }, [ groupItems, filterType ]); useEffect(() => { @@ -114,6 +156,11 @@ export const InventoryFurnitureView: FC = props => + { filteredGroupItems && (filteredGroupItems.length > 0) && filteredGroupItems.map((item, index) => ) } @@ -121,6 +168,11 @@ export const InventoryFurnitureView: FC = props => + { selectedItem && + + } { selectedItem && selectedItem.stuffData.isUnique && } { (selectedItem && selectedItem.stuffData.rarityLevel > -1) && @@ -128,7 +180,7 @@ export const InventoryFurnitureView: FC = props => { selectedItem && - { selectedItem.name } + { selectedItem.name } { !!roomSession && - - - + + + + +
+ + + Cool UI + Was created by Wassehk + - DuckieTM (Re-Design) + - Jonas (Contributing) + - Ohlucas (Sunset resources) + v2.2.0 + + + + +
- + ); } diff --git a/src/components/room/widgets/RoomWidgets.scss b/src/components/room/widgets/RoomWidgets.scss index d6e2bed..abd70d6 100644 --- a/src/components/room/widgets/RoomWidgets.scss +++ b/src/components/room/widgets/RoomWidgets.scss @@ -1,15 +1,16 @@ .nitro-room-tools-container { position: absolute; - bottom: $toolbar-height + 65px; + bottom: $toolbar-height + 25px; left: 0; .nitro-room-tools { - background: rgba($dark, .95); + background: #212131; box-shadow: inset 0px 5px lighten(rgba($dark, .6), 2.5), inset 0 -4px darken(rgba($dark, .6), 4); border-top-right-radius: $border-radius; border-bottom-right-radius: $border-radius; transition: all .2s ease; - z-index: 2; + z-index: 71; + margin-left: -20px; .list-group-item { background: transparent; @@ -45,14 +46,30 @@ } } + .nitro-room-history { + background: #212131; + box-shadow: inset 0px 5px lighten(rgba($dark, .6), 2.5), inset 0 -4px darken(rgba($dark, .6), 4); + transition: all .2s ease; + width: 150px; + overflow: hidden; + z-index: 3; + } + .nitro-room-tools-info { - background: rgba($dark, .95); + background: #212131; box-shadow: inset 0px 5px lighten(rgba($dark, .6), 2.5), inset 0 -4px darken(rgba($dark, .6), 4); transition: all .2s ease; max-width: 250px; } } +.nitro-room-tools-history { + position: absolute; + left: calc(100% - 2px); + margin-left: 2px; + height: 5%; +} + .wordquiz-question { position: absolute; top: 10px; @@ -99,24 +116,49 @@ height: $nitro-doorbell-height; } -.nitro-room-tools-history { - background: #212131; - box-shadow: inset 0 5px rgba(38, 38, 57, 0.6), inset 0 -4px rgba(25, 25, 37, 0.6); - border-radius: 5px; - transition: all 0.2s ease; - margin-left: 3px; - max-height: 104px; - overflow-y: auto; - z-index: 5; - padding-left: 6px; +.toggle-roomtool { + min-height: 95px; + width: 20px; + margin-left: -5px; + padding-left: 10px; + z-index: 72; } -.nitro-room-history-rooms { - position: fixed; - transition: all 0.2s ease; - max-height: 40px; - margin-left: 2px; - bottom: 75px; +.room-tool-item { + height: 20px; + cursor: pointer; +} + +.margin-icons { + margin-top: -14px; +} + +.margin-button-history { + margin-left: 4px; + margin-right: 4px; +} + +.text-no-promote { + font-size: 15px; +} + +.icon-style { + margin-top: 1px; + margin-left: 4px; +} + +.arrow-right-style { + margin-right: 4px; +} + +.tags { + background-color: #1B2834; + color: #1A75A6; + font-size: 10px; + + &:hover { + color: #419AD2; + } } @import './avatar-info/AvatarInfoWidgetView'; @@ -127,4 +169,4 @@ @import './friend-request/FriendRequestDialogView'; @import './furniture/FurnitureWidgets'; @import './mysterybox/MysteryBoxExtensionView'; -@import './pet-package/PetPackageWidgetView'; +@import './pet-package/PetPackageWidgetView'; \ No newline at end of file diff --git a/src/components/room/widgets/chat/ChatWidgetView.scss b/src/components/room/widgets/chat/ChatWidgetView.scss index b45ab45..c8dd62e 100644 --- a/src/components/room/widgets/chat/ChatWidgetView.scss +++ b/src/components/room/widgets/chat/ChatWidgetView.scss @@ -686,6 +686,186 @@ } } + &.bubble-39 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_39.png"); + + border-image-slice: 16 6 7 32 fill; + border-image-width: 16px 6px 7px 32px; + border-image-outset: 5px 0px 0px 3px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_39_pointer.png"); + } + } + + &.bubble-40 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_40.png"); + + border-image-slice: 16 6 7 32 fill; + border-image-width: 16px 6px 7px 32px; + border-image-outset: 5px 0px 0px 3px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_40_pointer.png"); + } + } + + &.bubble-41 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_41.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_41_pointer.png"); + } + } + + &.bubble-42 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_42.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_42_pointer.png"); + } + } + + &.bubble-43 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_43.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_43_pointer.png"); + } + } + + &.bubble-44 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_44.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_44_pointer.png"); + } + } + + &.bubble-45 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_45.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_45_pointer.png"); + } + } + + &.bubble-46 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_46.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_46_pointer.png"); + } + } + + &.bubble-47 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_47.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_47_pointer.png"); + } + } + + &.bubble-48 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_48.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_48_pointer.png"); + } + } + + &.bubble-49 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_49.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_49_pointer.png"); + } + } + + &.bubble-50 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_50.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_50_pointer.png"); + } + } + + &.bubble-51 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_51.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_51_pointer.png"); + } + } + + &.bubble-52 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_52.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_52_pointer.png"); + } + } + + &.bubble-53 { + border-image-source: url("@/assets/images/chat/chatbubbles/bubble_53.png"); + + border-image-slice: 16 7 6 33 fill; + border-image-width: 16px 6px 6px 32px; + border-image-outset: 7px 0px 0px 5px; + + .pointer { + background: url("@/assets/images/chat/chatbubbles/bubble_53_pointer.png"); + } + } + .user-container { z-index: 3; display: flex; @@ -916,4 +1096,64 @@ background: url('@/assets/images/chat/chatbubbles/bubble_38_extra.png'); } } + + &.bubble-39 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_39.png"); + } + + &.bubble-40 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_40.png"); + } + + &.bubble-41 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_41.png"); + } + + &.bubble-42 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_42.png"); + } + + &.bubble-43 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_43.png"); + } + + &.bubble-44 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_44.png"); + } + + &.bubble-45 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_45.png"); + } + + &.bubble-46 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_46.png"); + } + + &.bubble-47 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_47.png"); + } + + &.bubble-48 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_48.png"); + } + + &.bubble-49 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_49.png"); + } + + &.bubble-50 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_50.png"); + } + + &.bubble-51 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_51.png"); + } + + &.bubble-52 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_52.png"); + } + + &.bubble-53 { + background-image: url("@/assets/images/chat/chatbubbles/bubble_53.png"); + } } diff --git a/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx b/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx index 8757fbf..4b8ec84 100644 --- a/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx +++ b/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx @@ -1,21 +1,24 @@ -import { CreateLinkEvent, GetGuestRoomResultEvent, GetRoomEngine, NavigatorSearchComposer, RateFlatMessageComposer } from '@nitrots/nitro-renderer'; +import { CreateLinkEvent, GetGuestRoomResultEvent, GetRoomEngine, NavigatorSearchComposer, RateFlatMessageComposer, RoomDataParser } from '@nitrots/nitro-renderer'; import { FC, useEffect, useState } from 'react'; -import { LocalizeText, SendMessageComposer, TryVisitRoom } from '../../../../api'; +import { LocalizeText, SendMessageComposer, SetLocalStorage, TryVisitRoom } from '../../../../api'; import { Base, Column, Flex, Text, TransitionAnimation, TransitionAnimationTypes, classNames } from '../../../../common'; import { useMessageEvent, useNavigator, useRoom } from '../../../../hooks'; export const RoomToolsWidgetView: FC<{}> = props => { + const [ areBubblesMuted, setAreBubblesMuted ] = useState(false); const [ isZoomedIn, setIsZoomedIn ] = useState(false); const [ roomName, setRoomName ] = useState(null); const [ roomOwner, setRoomOwner ] = useState(null); const [ roomTags, setRoomTags ] = useState(null); const [ isOpen, setIsOpen ] = useState(false); - const [ isOpenHistory, setIsOpenHistory ] = useState(false); - const { navigatorData = null } = useNavigator(); - const [ roomHistory, setRoomHistory ] = useState<{ roomId: number, roomName: string }[]>([]); + const [ isOpenHistory, setIsOpenHistory ] = useState(false); + const [ show, setShow ] = useState(true); + const [ roomHistory, setRoomHistory ] = useState<{ roomId: number, roomName: string }[]>([]); + const { navigatorData = null } = useNavigator(); const { roomSession = null } = useRoom(); - const [areBubblesMuted, setAreBubblesMuted] = useState(false); + + useEffect(() => { if (!roomName) { setRoomName(LocalizeText('landing.view.generic.welcome.first_login')); } }, [roomName]); const handleToolClick = (action: string, value?: string) => { @@ -46,6 +49,11 @@ export const RoomToolsWidgetView: FC<{}> = props => if (bubbleElement) { bubbleElement.classList.toggle('icon-chat-disablebubble'); } + const hiddenbubblesTextElement = document.getElementById('hiddenbubblesText'); + if (hiddenbubblesTextElement) { + const newText = areBubblesMuted ? LocalizeText('room.unmute.button.text') : LocalizeText('room.mute.button.text'); + hiddenbubblesTextElement.innerText = newText; + } setAreBubblesMuted(!areBubblesMuted); const bubbleIcon = document.getElementById('bubbleIcon'); if (bubbleIcon) { @@ -62,54 +70,60 @@ export const RoomToolsWidgetView: FC<{}> = props => CreateLinkEvent(`navigator/search/${ value }`); SendMessageComposer(new NavigatorSearchComposer('hotel_view', `tag:${ value }`)); return; - case 'room_history': - if (roomHistory.length > 0) { - const roomHistoryTool = document.getElementById("roomhistorytool"); - if (!isOpenHistory) { - roomHistoryTool.style.display = "block"; - setIsOpenHistory(true); - } else { - setIsOpenHistory(false); - roomHistoryTool.style.display = "none"; - } - } - return; - case 'room_history_back': - TryVisitRoom(roomHistory[roomHistory.findIndex(room => room.roomId === navigatorData.currentRoomId) - 1].roomId) - return; + case 'room_history': + if (roomHistory.length > 0) setIsOpenHistory(prevValue => !prevValue); + return; + case 'room_history_back': + TryVisitRoom(roomHistory[roomHistory.findIndex(room => room.roomId === navigatorData.currentRoomId) - 1].roomId); + return; case 'room_history_next': - TryVisitRoom(roomHistory[roomHistory.findIndex(room => room.roomId === navigatorData.currentRoomId) + 1].roomId) - return; + TryVisitRoom(roomHistory[roomHistory.findIndex(room => room.roomId === navigatorData.currentRoomId) + 1].roomId); + return; } } - - const onChangeRoomHistory = (roomId: number, roomName: string) => { - const newStorage = JSON.parse(window.localStorage.getItem('nitro.room.history')) || []; - if (newStorage.some(room => room.roomId === roomId)) return; + const onChangeRoomHistory = (roomId: number, roomName: string) => + { + let newStorage = JSON.parse(window.localStorage.getItem('nitro.room.history')); - if (newStorage.length >= 10) newStorage.shift(); + if (newStorage && newStorage.filter( (room: RoomDataParser) => room.roomId === roomId ).length > 0) return; - const newData = [...newStorage, { roomId, roomName }]; + if (newStorage && newStorage.length >= 10) newStorage.shift(); + + const newData = !newStorage ? [ { roomId: roomId, roomName: roomName } ] : [ ...newStorage, { roomId: roomId, roomName: roomName } ]; setRoomHistory(newData); - SetLocalStorage('nitro.room.history', newData); - }; + return SetLocalStorage('nitro.room.history', newData ); + } - useMessageEvent(GetGuestRoomResultEvent, event => { - CreateLinkEvent('nitrobubblehidden/hide'); + useMessageEvent(GetGuestRoomResultEvent, event => + { const parser = event.getParser(); - if (!parser.roomEnter || (parser.data.roomId !== roomSession.roomId)) return; + if(!parser.roomEnter || (parser.data.roomId !== roomSession.roomId)) return; - const { roomName, ownerName, tags } = parser.data; + if(roomName !== parser.data.roomName) setRoomName(parser.data.roomName); + if(roomOwner !== parser.data.ownerName) setRoomOwner(parser.data.ownerName); + if(roomTags !== parser.data.tags) setRoomTags(parser.data.tags); - if (roomName !== roomSession.roomName) { setRoomName(roomName); } - if (ownerName !== roomSession.ownerName) { setRoomOwner(ownerName); } - if (JSON.stringify(tags) !== JSON.stringify(roomSession.tags)) { setRoomTags(tags); } onChangeRoomHistory(parser.data.roomId, parser.data.roomName); }); + useEffect(() => + { + const handleTabClose = () => + { + if (JSON.parse(window.localStorage.getItem('nitro.room.history'))) window.localStorage.removeItem('nitro.room.history'); + }; + + window.addEventListener('beforeunload', handleTabClose); + + return () => + { + window.removeEventListener('beforeunload', handleTabClose); + }; + }, []); + useEffect(() => { setIsOpen(true); @@ -117,58 +131,86 @@ export const RoomToolsWidgetView: FC<{}> = props => const timeout = setTimeout(() => setIsOpen(false), 5000); return () => clearTimeout(timeout); - }, [ roomName, roomOwner, roomTags ]); - - useEffect(() => { - setRoomHistory(JSON.parse(window.localStorage.getItem('nitro.room.history')) || []); - }, []); + }, [ roomName, roomOwner, roomTags, show ]); + + useEffect(() => + { + setRoomHistory(JSON.parse(window.localStorage.getItem('nitro.room.history')) ?? []); + }, [ ]); return ( - - handleToolClick('settings') } /> - handleToolClick('zoom') } className={ classNames('icon', (!isZoomedIn && 'icon-zoom-less'), (isZoomedIn && 'icon-zoom-more')) } /> - handleToolClick('hiddenbubbles') } /> - handleToolClick('chat_history') } className="icon icon-chat-history" /> - { navigatorData.canRate && - handleToolClick('like_room') } className="icon icon-like-room" /> } - - - - - - - { roomName } - { roomOwner } - - { roomTags && roomTags.length > 0 && - - { roomTags.map((tag, index) => handleToolClick('navigator_search_tag', tag) }>#{ tag }) } - } - - - - - - 1 && roomHistory[0]?.roomId !== navigatorData.currentRoomId } title={ LocalizeText('room.history.button.back.tooltip') } className={ `icon ${ (roomHistory?.length === 0 || roomHistory[0]?.roomId === navigatorData.currentRoomId) ? 'icon-room-history-back-disabled' : 'icon-room-history-back-enabled' }` } onClick={ () => (roomHistory?.length === 0 || roomHistory[0]?.roomId === navigatorData.currentRoomId) ? null : handleToolClick('room_history_back') } /> - 0 } title={ LocalizeText('room.history.button.tooltip') } className={ `icon ${ roomHistory?.length === 0 ? 'icon-room-history-disabled' : 'icon-room-history-enabled' } margin-button-history` } onClick={ () => roomHistory?.length === 0 ? null : handleToolClick('room_history') } /> - 1 && roomHistory[roomHistory.length - 1]?.roomId !== navigatorData.currentRoomId } title={ LocalizeText('room.history.button.forward.tooltip') } className={ `icon ${ (roomHistory?.length === 0 || roomHistory[roomHistory.length - 1]?.roomId === navigatorData.currentRoomId) ? 'icon-room-history-next-disabled' : 'icon-room-history-next-enabled' }` } onClick={ () => (roomHistory?.length === 0 || roomHistory[roomHistory.length - 1]?.roomId === navigatorData.currentRoomId) ? null : handleToolClick('room_history_next') } /> - -
- - - - { - (roomHistory.length > 0) && roomHistory.map(history => - { - return TryVisitRoom(history.roomId) }>{ history.roomName }; - }) - } - - - - +
setShow(!show) }> +
+ { show && ( + <> + + + + handleToolClick('settings') } /> + handleToolClick('zoom') } className={ classNames('icon', (!isZoomedIn && 'icon-zoom-less'), (isZoomedIn && 'icon-zoom-more')) } /> + handleToolClick('chat_history') } className="icon icon-chat-history" /> + { navigatorData.canRate && + handleToolClick('like_room') } className="icon icon-like-room" /> } + handleToolClick('toggle_room_link') } className="icon icon-room-link" /> + handleToolClick('hiddenbubbles') } className={`icon ${areBubblesMuted ? 'icon-chat-disablebubble' : 'icon-chat-enablebubble'}`} /> + + + + handleToolClick('settings') }>{ LocalizeText('room.settings.button.text') } + + + handleToolClick('zoom') }>{ LocalizeText('room.zoom.button.text') } + + + handleToolClick('chat_history') }>{ LocalizeText('room.chathistory.button.text') } + { navigatorData.canRate && + + handleToolClick('like_room') }>{ LocalizeText('room.like.button.text') } + } + + handleToolClick('toggle_room_link') }>{ LocalizeText('navigator.embed.caption') } + + + handleToolClick('hiddenbubbles')}> {areBubblesMuted ? LocalizeText('room.unmute.button.text') : LocalizeText('room.mute.button.text')} + + + + + 1 && roomHistory[0]?.roomId !== navigatorData.currentRoomId } title={ LocalizeText('room.history.button.back.tooltip') } className={ `icon ${ (roomHistory?.length === 0 || roomHistory[0]?.roomId === navigatorData.currentRoomId) ? 'icon-room-history-back-disabled' : 'icon-room-history-back-enabled' }` } onClick={ () => (roomHistory?.length === 0 || roomHistory[0]?.roomId === navigatorData.currentRoomId) ? null : handleToolClick('room_history_back') } /> + 0 } title={ LocalizeText('room.history.button.tooltip') } className={ `icon ${ roomHistory?.length === 0 ? 'icon-room-history-disabled' : 'icon-room-history-enabled' } margin-button-history` } onClick={ () => roomHistory?.length === 0 ? null : handleToolClick('room_history') } /> + 1 && roomHistory[roomHistory.length - 1]?.roomId !== navigatorData.currentRoomId } title={ LocalizeText('room.history.button.forward.tooltip') } className={ `icon ${ (roomHistory?.length === 0 || roomHistory[roomHistory.length - 1]?.roomId === navigatorData.currentRoomId) ? 'icon-room-history-next-disabled' : 'icon-room-history-next-enabled' }` } onClick={ () => (roomHistory?.length === 0 || roomHistory[roomHistory.length - 1]?.roomId === navigatorData.currentRoomId) ? null : handleToolClick('room_history_next') } /> + + + + + + + + { (roomHistory.length > 0) && roomHistory.map(history => + { + return TryVisitRoom(history.roomId) }>{ history.roomName }; + }) } + + + + + + + + + + {roomName} {roomOwner} + {roomTags && roomTags.length > 0 ? ( + {roomTags.map((tag, index) => ( handleToolClick('navigator_search_tag', tag)} > #{tag} ))} + ) : ( { LocalizeText('navigator.notagsfound') } )} + + + + + + ) } ); -} +} \ No newline at end of file diff --git a/src/events/inventory/DeleteItemConfirmEvent.ts b/src/events/inventory/DeleteItemConfirmEvent.ts new file mode 100644 index 0000000..4680620 --- /dev/null +++ b/src/events/inventory/DeleteItemConfirmEvent.ts @@ -0,0 +1,27 @@ +import { FurnitureItem } from '../../api'; +import { NitroEvent } from '@nitrots/nitro-renderer'; + +export class DeleteItemConfirmEvent extends NitroEvent +{ + public static DELETE_ITEM_CONFIRM = 'DIC_DELETE_ITEM_CONFIRM'; + + private _item: FurnitureItem; + private _amount: number; + + constructor(item: FurnitureItem, amount: number) + { + super(DeleteItemConfirmEvent.DELETE_ITEM_CONFIRM); + this._item = item; + this._amount = amount; + } + + public get item(): FurnitureItem + { + return this._item; + } + + public get amount(): number + { + return this._amount; + } +} \ No newline at end of file diff --git a/src/events/inventory/index.ts b/src/events/inventory/index.ts index 58503ea..a037def 100644 --- a/src/events/inventory/index.ts +++ b/src/events/inventory/index.ts @@ -1 +1,2 @@ -export * from './InventoryFurniAddedEvent'; +export * from './DeleteItemConfirmEvent'; +export * from './InventoryFurniAddedEvent'; \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..bbf7d66 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,51 @@ +/** @type {import('tailwindcss').Config} */ + +const { generateShades } = require('./css-utils/CSSColorUtils'); + +const colors = { + 'toolbar': '#555555', + 'card-header': '#1E7295', + 'card-close': '#921911', + 'card-tabs': '#185D79', + 'card-border': '#283F5D', + 'card-tab-item': '#B6BEC5', + 'card-tab-item-active': '#DFDFDF', + 'card-content-area': '#DFDFDF' +}; + +const boxShadow = { + 'inner1px': 'inset 0 0 0 1px rgba(255,255,255,.3)' +}; + + +module.exports = { + theme: { + extend: { + fontFamily: { + sans: [ 'Ubuntu', 'sans-serif' ], + }, + colors: generateShades(colors), + boxShadow, + spacing: { + 'card-header': '33px', + 'card-tabs': '33px', + 'navigator-w': '420px', + 'navigator-h': '440px', + 'inventory-w': '528px', + 'inventory-h': '320px' + }, + zIndex: { + 'toolbar': '' + } + }, + }, + darkMode: 'class', + plugins: [ + require('@tailwindcss/forms'), + require('@headlessui/tailwindcss')({ prefix: 'ui' }) + ], + content: [ + './index.html', + './src/**/*.{html,js,jsx,ts,tsx}' + ] +} diff --git a/tsconfig.json b/tsconfig.json index 9912440..218721b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,7 +20,10 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "react-jsx", + "paths": { + "@layout/*": ["layout/*"], + } }, "include": [ "src", diff --git a/vite.config.mjs b/vite.config.mjs index 7d6d25d..4e043b5 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -2,9 +2,10 @@ import react from '@vitejs/plugin-react'; import { resolve } from 'path'; import { defineConfig } from 'vite'; +import tsconfigPaths from 'vite-tsconfig-paths'; export default defineConfig({ - plugins: [ react() ], + plugins: [ react(), tsconfigPaths() ], resolve: { alias: { '@': resolve(__dirname, 'src'), diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..f032563 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3520 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + +"@babel/compat-data@^7.23.5": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.1.tgz#31c1f66435f2a9c329bb5716a6d6186c516c3742" + integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA== + +"@babel/core@^7.23.5": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.3.tgz#568864247ea10fbd4eff04dda1e05f9e2ea985c3" + integrity sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.1" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.24.1" + "@babel/parser" "^7.24.1" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.1.tgz#e67e06f68568a4ebf194d1c6014235344f0476d0" + integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A== + dependencies: + "@babel/types" "^7.24.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.15": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-plugin-utils@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" + integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helpers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.1.tgz#183e44714b9eba36c3038e442516587b1e0a1a94" + integrity sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.1" + "@babel/types" "^7.24.0" + +"@babel/highlight@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" + integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a" + integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg== + +"@babel/plugin-transform-react-jsx-self@^7.23.3": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz#a21d866d8167e752c6a7c4555dba8afcdfce6268" + integrity sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-react-jsx-source@^7.23.3": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz#a2dedb12b09532846721b5df99e52ef8dc3351d0" + integrity sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.1.tgz#431f9a794d173b53720e69a6464abc6f0e2a5c57" + integrity sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" + integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== + dependencies: + "@babel/code-frame" "^7.24.1" + "@babel/generator" "^7.24.1" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.24.1" + "@babel/types" "^7.24.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" + integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== + +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== + +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== + +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== + +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== + +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== + +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== + +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== + +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== + +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== + +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== + +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== + +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== + +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== + +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== + +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== + +"@esbuild/linux-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" + integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== + +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== + +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== + +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== + +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== + +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== + +"@esbuild/win32-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" + integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@headlessui/react@^1.7.18": + version "1.7.18" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.18.tgz#30af4634d2215b2ca1aa29d07f33d02bea82d9d7" + integrity sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ== + dependencies: + "@tanstack/react-virtual" "^3.0.0-beta.60" + client-only "^0.0.1" + +"@headlessui/tailwindcss@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@headlessui/tailwindcss/-/tailwindcss-0.2.0.tgz#2c55c98fd8eee4b4f21ec6eb35a014b840059eec" + integrity sha512-fpL830Fln1SykOCboExsWr3JIVeQKieLJ3XytLe/tt1A0XzqUthOftDmjcCYLW62w7mQI7wXcoPXr3tZ9QfGxw== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@popperjs/core@^2.11.6": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@react-aria/ssr@^3.5.0": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.2.tgz#01b756965cd6e32b95217f968f513eb3bd6ee44b" + integrity sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@restart/hooks@^0.4.9": + version "0.4.16" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.16.tgz#95ae8ac1cc7e2bd4fed5e39800ff85604c6d59fb" + integrity sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w== + dependencies: + dequal "^2.0.3" + +"@restart/ui@^1.6.8": + version "1.6.8" + resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.8.tgz#61b73503d4690e2f0f58992d4d6ae1e89c276791" + integrity sha512-6ndCv3oZ7r9vuP1Ok9KH55TM1/UkdBnP/fSraW0DFDMbPMzWKhVKeFAIEUCRCSdzayjZDcFYK6xbMlipN9dmMA== + dependencies: + "@babel/runtime" "^7.21.0" + "@popperjs/core" "^2.11.6" + "@react-aria/ssr" "^3.5.0" + "@restart/hooks" "^0.4.9" + "@types/warning" "^3.0.0" + dequal "^2.0.3" + dom-helpers "^5.2.0" + uncontrollable "^8.0.1" + warning "^4.0.3" + +"@rollup/rollup-android-arm-eabi@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.2.tgz#fbf098f49d96a8cac9056f22f5fd80906ef3af85" + integrity sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g== + +"@rollup/rollup-android-arm64@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.2.tgz#0d2448251040fce19a98eee505dff5b3c8ec9b98" + integrity sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ== + +"@rollup/rollup-darwin-arm64@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.2.tgz#78db4d4da5b1b84c22adbe25c8a4961b3f22d3af" + integrity sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA== + +"@rollup/rollup-darwin-x64@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.2.tgz#fcc05af54379f8ee5c7e954987d4514c6fd0fb42" + integrity sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A== + +"@rollup/rollup-linux-arm-gnueabihf@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.2.tgz#2ce200efa1ef4a56ee2af7b453edc74a259d7d31" + integrity sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ== + +"@rollup/rollup-linux-arm64-gnu@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.2.tgz#5a24aac882bff9abfda3f45f6f1db2166c342a4a" + integrity sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ== + +"@rollup/rollup-linux-arm64-musl@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.2.tgz#f1fb4c6f961d3f3397231a99e621d199200e4ea9" + integrity sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.13.2.tgz#46b2463d94ac3af3e0f7a2947b695397bc13b755" + integrity sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ== + +"@rollup/rollup-linux-riscv64-gnu@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.2.tgz#47b932ee59a5395a3a341b0493e361d9e6032cf2" + integrity sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw== + +"@rollup/rollup-linux-s390x-gnu@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.13.2.tgz#8e14a1b3c3b9a4440c70a9c1ba12d32aa21f9712" + integrity sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg== + +"@rollup/rollup-linux-x64-gnu@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.2.tgz#270e939194b66df77bcb33dd9a5ddf7784bd7997" + integrity sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A== + +"@rollup/rollup-linux-x64-musl@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.2.tgz#e8dd0f3c2046acbda2934490b36552e856a3bc6a" + integrity sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA== + +"@rollup/rollup-win32-arm64-msvc@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.2.tgz#f8b65a4a7e7a6b383e7b14439129b2f474ff123c" + integrity sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA== + +"@rollup/rollup-win32-ia32-msvc@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.2.tgz#bc1c5a4fbc4337d6cb15da80a4de95fd53ab3573" + integrity sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw== + +"@rollup/rollup-win32-x64-msvc@4.13.2": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz#851959c4c1c3c6647aba1f388198c8243aed6917" + integrity sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ== + +"@swc/helpers@^0.5.0": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.8.tgz#65d56b1961487fd99795ffd8c68edb7a591571fb" + integrity sha512-lruDGw3pnfM3wmZHeW7JuhkGQaJjPyiKjxeGhdmfoOT53Ic9qb5JLDNaK2HUdl1zLDeX28H221UvKjfdvSLVMg== + dependencies: + tslib "^2.4.0" + +"@tailwindcss/forms@^0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tanstack/react-virtual@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz#fb70f9c6baee753a5a0f7618ac886205d5a02af9" + integrity sha512-OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg== + dependencies: + "@tanstack/virtual-core" "3.2.0" + +"@tanstack/react-virtual@^3.0.0-beta.60": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.2.1.tgz#58ac9af23ff08b5f05a6dfe6a59deac2f9451508" + integrity sha512-i9Nt0ssIh2bSjomJZlr6Iq5usT/9+ewo2/fKHRNk6kjVKS8jrhXbnO8NEawarCuBx/efv0xpoUUKKGxa0cQb4Q== + dependencies: + "@tanstack/virtual-core" "3.2.1" + +"@tanstack/virtual-core@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz#874d36135e4badce2719e7bdc556ce240cbaff14" + integrity sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ== + +"@tanstack/virtual-core@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.2.1.tgz#b3e4214b8f462054501d80e8777068faa139bd06" + integrity sha512-nO0d4vRzsmpBQCJYyClNHPPoUMI4nXNfrm6IcCRL33ncWMoNVpURh9YebEHPw8KrtsP2VSJIHE4gf4XFGk1OGg== + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/node@^20.11.30": + version "20.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.2.tgz#9facdd11102f38b21b4ebedd9d7999663343d72e" + integrity sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ== + dependencies: + undici-types "~5.26.4" + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/react-dom@^18.2.22": + version "18.2.23" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.23.tgz#112338760f622a16d64271b408355f2f27f6302c" + integrity sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A== + dependencies: + "@types/react" "*" + +"@types/react-slider@^1.3.6": + version "1.3.6" + resolved "https://registry.yarnpkg.com/@types/react-slider/-/react-slider-1.3.6.tgz#6f5602be93ab1cb3d273428c87aa227ad2ff68ff" + integrity sha512-RS8XN5O159YQ6tu3tGZIQz1/9StMLTg/FCIPxwqh2gwVixJnlfIodtVx+fpXVMZHe7A58lAX1Q4XTgAGOQaCQg== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.6": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.2.67": + version "18.2.73" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.73.tgz#0579548ad122660d99e00499d22e33b81e73ed94" + integrity sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/semver@^7.5.0": + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@types/warning@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.3.tgz#d1884c8cc4a426d1ac117ca2611bf333834c6798" + integrity sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q== + +"@typescript-eslint/eslint-plugin@^7.3.1": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz#1dc52fe48454d5b54be2d5f089680452f1628a5a" + integrity sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "7.5.0" + "@typescript-eslint/type-utils" "7.5.0" + "@typescript-eslint/utils" "7.5.0" + "@typescript-eslint/visitor-keys" "7.5.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^7.3.1": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.5.0.tgz#1eeff36309ac2253c905dd4a88b4b71b72a358ed" + integrity sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ== + dependencies: + "@typescript-eslint/scope-manager" "7.5.0" + "@typescript-eslint/types" "7.5.0" + "@typescript-eslint/typescript-estree" "7.5.0" + "@typescript-eslint/visitor-keys" "7.5.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz#70f0a7361430ab1043a5f97386da2a0d8b2f4d56" + integrity sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA== + dependencies: + "@typescript-eslint/types" "7.5.0" + "@typescript-eslint/visitor-keys" "7.5.0" + +"@typescript-eslint/type-utils@7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz#a8faa403232da3a3901655387c7082111f692cf9" + integrity sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw== + dependencies: + "@typescript-eslint/typescript-estree" "7.5.0" + "@typescript-eslint/utils" "7.5.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.5.0.tgz#0a284bcdef3cb850ec9fd57992df9f29d6bde1bc" + integrity sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg== + +"@typescript-eslint/typescript-estree@7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz#aa5031c511874420f6b5edd90f8e4021525ee776" + integrity sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ== + dependencies: + "@typescript-eslint/types" "7.5.0" + "@typescript-eslint/visitor-keys" "7.5.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.5.0.tgz#bbd963647fbbe9ffea033f42c0fb7e89bb19c858" + integrity sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "7.5.0" + "@typescript-eslint/types" "7.5.0" + "@typescript-eslint/typescript-estree" "7.5.0" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz#8abcac66f93ef20b093e87a400c2d21e3a6d55ee" + integrity sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA== + dependencies: + "@typescript-eslint/types" "7.5.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-react@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" + integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + dependencies: + "@babel/core" "^7.23.5" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.0" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlast@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.toreversed@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba" + integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8" + integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.1.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +autoprefixer@^10.4.19: + version "10.4.19" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== + +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.22.2, browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001603" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001603.tgz#605046a5bdc95ba4a92496d67e062522dce43381" + integrity sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q== + +caniuse-lite@^1.0.30001599: + version "1.0.30001608" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz#7ae6e92ffb300e4b4ec2f795e0abab456ec06cc0" + integrity sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +classnames@^2.3.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@^2.6.6: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dompurify@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.1.0.tgz#8c6b9fe986969a33aa4686bd829cbe8e14dd9445" + integrity sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +electron-to-chromium@^1.4.668: + version "1.4.723" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz#827da30c96b316684d352c3d81430029df01bb8e" + integrity sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.1.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.0.17: + version "1.0.18" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz#4d3424f46b24df38d064af6fbbc89274e29ea69d" + integrity sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild@^0.20.1: + version "0.20.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" + integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== + optionalDependencies: + "@esbuild/aix-ppc64" "0.20.2" + "@esbuild/android-arm" "0.20.2" + "@esbuild/android-arm64" "0.20.2" + "@esbuild/android-x64" "0.20.2" + "@esbuild/darwin-arm64" "0.20.2" + "@esbuild/darwin-x64" "0.20.2" + "@esbuild/freebsd-arm64" "0.20.2" + "@esbuild/freebsd-x64" "0.20.2" + "@esbuild/linux-arm" "0.20.2" + "@esbuild/linux-arm64" "0.20.2" + "@esbuild/linux-ia32" "0.20.2" + "@esbuild/linux-loong64" "0.20.2" + "@esbuild/linux-mips64el" "0.20.2" + "@esbuild/linux-ppc64" "0.20.2" + "@esbuild/linux-riscv64" "0.20.2" + "@esbuild/linux-s390x" "0.20.2" + "@esbuild/linux-x64" "0.20.2" + "@esbuild/netbsd-x64" "0.20.2" + "@esbuild/openbsd-x64" "0.20.2" + "@esbuild/sunos-x64" "0.20.2" + "@esbuild/win32-arm64" "0.20.2" + "@esbuild/win32-ia32" "0.20.2" + "@esbuild/win32-x64" "0.20.2" + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react@^7.34.1: + version "7.34.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz#6806b70c97796f5bbfb235a5d3379ece5f4da997" + integrity sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlast "^1.2.4" + array.prototype.flatmap "^1.3.2" + array.prototype.toreversed "^1.1.2" + array.prototype.tosorted "^1.1.3" + doctrine "^2.1.0" + es-iterator-helpers "^1.0.17" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + object.hasown "^1.1.3" + object.values "^1.1.7" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.10" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@3.1.3, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.3.10: + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.10.2" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +immutable@^4.0.0: + version "4.3.5" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +language-subtag-registry@^0.3.20: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-script@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" + integrity sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA== + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.hasown@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc" + integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg== + dependencies: + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.values@^1.1.6, object.values@^1.1.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-selector-parser@^6.0.11: + version "6.0.16" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.23, postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-plugin-tailwindcss@^0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.13.tgz#ee3c1e07848c90abdd1edde36a09366327e31e26" + integrity sha512-2tPWHCFNC+WRjAC4SIWQNSOdcL1NNkydXim8w7TDqlZi+/ulZYz2OouAI6qMtkggnPt7lGamboj6LcTMwcCvoQ== + +prettier@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + +prop-types-extra@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" + integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== + dependencies: + react-is "^16.3.2" + warning "^4.0.0" + +prop-types@15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +prop-types@^15.6.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-bootstrap@^2.2.2: + version "2.10.2" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.10.2.tgz#3b609eb0170e31b3d9ace297d3a016c202a42642" + integrity sha512-UvB7mRqQjivdZNxJNEA2yOQRB7L9N43nBnKc33K47+cH90/ujmnMwatTCwQLu83gLhrzAl8fsa6Lqig/KLghaA== + dependencies: + "@babel/runtime" "^7.22.5" + "@restart/hooks" "^0.4.9" + "@restart/ui" "^1.6.8" + "@types/react-transition-group" "^4.4.6" + classnames "^2.3.2" + dom-helpers "^5.2.1" + invariant "^2.2.4" + prop-types "^15.8.1" + prop-types-extra "^1.1.0" + react-transition-group "^4.4.5" + uncontrollable "^7.2.1" + warning "^4.0.3" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-icons@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.0.1.tgz#1694e11bfa2a2888cab47dcc30154ce90485feee" + integrity sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw== + +react-is@^16.13.1, react-is@^16.3.2, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +react-slider@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/react-slider/-/react-slider-2.0.6.tgz#8c7ff0301211f7c3ff32aa0163b33bdab6258559" + integrity sha512-gJxG1HwmuMTJ+oWIRCmVWvgwotNCbByTwRkFZC6U4MBsHqJBmxwbYRJUmxy4Tke1ef8r9jfXjgkmY/uHOCEvbA== + dependencies: + prop-types "^15.8.1" + +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-youtube@^7.13.1: + version "7.14.0" + resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-7.14.0.tgz#0505d86491521ca94ef0afb74af3f7936dc7bc86" + integrity sha512-SUHZ4F4pd1EHmQu0CV0KSQvAs5KHOT5cfYaq4WLCcDbU8fBo1ouTXaAOIASWbrz8fHwg+G1evfoSIYpV2AwSAg== + dependencies: + fast-deep-equal "3.1.3" + prop-types "15.7.2" + youtube-player "5.5.2" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.7, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@^4.13.0: + version "4.13.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.13.2.tgz#ac57d2dc48e8f5562f5a6daadb9caee590069262" + integrity sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.13.2" + "@rollup/rollup-android-arm64" "4.13.2" + "@rollup/rollup-darwin-arm64" "4.13.2" + "@rollup/rollup-darwin-x64" "4.13.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.13.2" + "@rollup/rollup-linux-arm64-gnu" "4.13.2" + "@rollup/rollup-linux-arm64-musl" "4.13.2" + "@rollup/rollup-linux-powerpc64le-gnu" "4.13.2" + "@rollup/rollup-linux-riscv64-gnu" "4.13.2" + "@rollup/rollup-linux-s390x-gnu" "4.13.2" + "@rollup/rollup-linux-x64-gnu" "4.13.2" + "@rollup/rollup-linux-x64-musl" "4.13.2" + "@rollup/rollup-win32-arm64-msvc" "4.13.2" + "@rollup/rollup-win32-ia32-msvc" "4.13.2" + "@rollup/rollup-win32-x64-msvc" "4.13.2" + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +sass@^1.72.0: + version "1.72.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.72.0.tgz#5b9978943fcfb32b25a6a5acb102fc9dabbbf41c" + integrity sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.4: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sister@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/sister/-/sister-3.0.2.tgz#bb3e39f07b1f75bbe1945f29a27ff1e5a2f26be4" + integrity sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + name string-width-cjs + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.matchall@^4.0.10: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.0" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +ts-api-utils@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +tsconfck@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-3.0.3.tgz#d9bda0e87d05b1c360e996c9050473c7e6f8084f" + integrity sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA== + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typescript@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" + integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uncontrollable@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" + integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== + dependencies: + "@babel/runtime" "^7.6.3" + "@types/react" ">=16.9.11" + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + +uncontrollable@^8.0.1: + version "8.0.4" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-8.0.4.tgz#a0a8307f638795162fafd0550f4a1efa0f8c5eb6" + integrity sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +use-between@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/use-between/-/use-between-1.3.5.tgz#8f9db513414d204e0046c5692828e209cec4d564" + integrity sha512-IP9eJfszZr0aah/6i/pzaM7n/QgMPwWKJ+mnWqT5O0qFhLnztPbkVC6L7zI6ygeBIMJHfmUGvsw0b28pyrEGSA== + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +vite-tsconfig-paths@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz#321f02e4b736a90ff62f9086467faf4e2da857a9" + integrity sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA== + dependencies: + debug "^4.1.1" + globrex "^0.1.2" + tsconfck "^3.0.3" + +vite@^5.1.6: + version "5.2.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.7.tgz#e1b8a985eb54fcb9467d7f7f009d87485016df6e" + integrity sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA== + dependencies: + esbuild "^0.20.1" + postcss "^8.4.38" + rollup "^4.13.0" + optionalDependencies: + fsevents "~2.3.3" + +warning@^4.0.0, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^2.3.4: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" + integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +youtube-player@5.5.2: + version "5.5.2" + resolved "https://registry.yarnpkg.com/youtube-player/-/youtube-player-5.5.2.tgz#052b86b1eabe21ff331095ffffeae285fa7f7cb5" + integrity sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ== + dependencies: + debug "^2.6.6" + load-script "^1.0.0" + sister "^3.0.0"